Skip to content

Commit

Permalink
linux: libzutil: zfs_path_order: don't strdup ZPOOL_IMPORT_PATH
Browse files Browse the repository at this point in the history
Reviewed-by: Brian Behlendorf <behlendorf1@llnl.gov>
Signed-off-by: Ahelenia Ziemiańska <nabijaczleweli@nabijaczleweli.xyz>
Closes openzfs#13223
  • Loading branch information
nabijaczleweli authored and andrewc12 committed Sep 23, 2022
1 parent 07af232 commit 24a8e9c
Showing 1 changed file with 17 additions and 17 deletions.
34 changes: 17 additions & 17 deletions lib/libzutil/os/linux/zutil_import_os.c
Original file line number Diff line number Diff line change
Expand Up @@ -264,36 +264,36 @@ zpool_default_search_paths(size_t *count)
* index in the passed 'order' variable, otherwise return an error.
*/
static int
zfs_path_order(char *name, int *order)
zfs_path_order(const char *name, int *order)
{
int i, error = ENOENT;
char *dir, *env, *envdup, *tmp = NULL;
const char *env = getenv("ZPOOL_IMPORT_PATH");

env = getenv("ZPOOL_IMPORT_PATH");
if (env) {
envdup = strdup(env);
for (dir = strtok_r(envdup, ":", &tmp), i = 0;
dir != NULL;
dir = strtok_r(NULL, ":", &tmp), i++) {
if (strncmp(name, dir, strlen(dir)) == 0) {
*order = i;
error = 0;
for (int i = 0; ; ++i) {
env += strspn(env, ":");
size_t dirlen = strcspn(env, ":");
if (dirlen) {
if (strncmp(name, env, dirlen) == 0) {
*order = i;
return (0);
}

env += dirlen;
} else
break;
}
}
free(envdup);
} else {
for (i = 0; i < ARRAY_SIZE(zpool_default_import_path); i++) {
for (int i = 0; i < ARRAY_SIZE(zpool_default_import_path);
++i) {
if (strncmp(name, zpool_default_import_path[i],
strlen(zpool_default_import_path[i])) == 0) {
*order = i;
error = 0;
break;
return (0);
}
}
}

return (error);
return (ENOENT);
}

/*
Expand Down

0 comments on commit 24a8e9c

Please sign in to comment.