libzfs: zpool_load_compat(): don't free undefined pointers

Reviewed-by: Brian Behlendorf <behlendorf1@llnl.gov>
Signed-off-by: Ahelenia Ziemiańska <nabijaczleweli@nabijaczleweli.xyz>
Closes #11993
This commit is contained in:
наб 2021-04-30 20:49:39 +02:00 committed by Brian Behlendorf
parent 133fd00930
commit 12ed5275d1
1 changed files with 8 additions and 4 deletions

View File

@ -306,9 +306,10 @@ dm_get_underlying_path(const char *dm_name)
else else
dev_str = tmp; dev_str = tmp;
size = asprintf(&tmp, "/sys/block/%s/slaves/", dev_str); if ((size = asprintf(&tmp, "/sys/block/%s/slaves/", dev_str)) == -1) {
if (size == -1 || !tmp) tmp = NULL;
goto end; goto end;
}
dp = opendir(tmp); dp = opendir(tmp);
if (dp == NULL) if (dp == NULL)
@ -334,7 +335,9 @@ dm_get_underlying_path(const char *dm_name)
if (!enclosure_path) if (!enclosure_path)
continue; continue;
size = asprintf(&path, "/dev/%s", ep->d_name); if ((size = asprintf(
&path, "/dev/%s", ep->d_name)) == -1)
path = NULL;
free(enclosure_path); free(enclosure_path);
break; break;
} }
@ -352,7 +355,8 @@ end:
* enclosure devices. Throw up out hands and return the first * enclosure devices. Throw up out hands and return the first
* underlying path. * underlying path.
*/ */
size = asprintf(&path, "/dev/%s", first_path); if ((size = asprintf(&path, "/dev/%s", first_path)) == -1)
path = NULL;
} }
free(first_path); free(first_path);