diff --git a/cmd/zpios/zpios_util.c b/cmd/zpios/zpios_util.c index 2d248ed9a..b31ba51c8 100644 --- a/cmd/zpios/zpios_util.c +++ b/cmd/zpios/zpios_util.c @@ -170,8 +170,11 @@ split_string(const char *optarg, char *pattern, range_repeat_t *range) * value of the * first argument, starts searching from the * saved pointer and behaves as described above. */ - token[i] = strtok(cp, comma); - cp = NULL; + if (i == 0) { + token[i] = strtok(cp, comma); + } else { + token[i] = strtok(NULL, comma); + } } while ((token[i++] != NULL) && (i < 32)); range->val_count = i - 1; @@ -260,12 +263,13 @@ set_noise(uint64_t *noise, char *optarg, char *arg) int set_load_params(cmd_args_t *args, char *optarg) { - char *param, *search, comma[] = ","; + char *param, *search, *searchdup, comma[] = ","; int rc = 0; search = strdup(optarg); if (search == NULL) return (ENOMEM); + searchdup = search; while ((param = strtok(search, comma)) != NULL) { search = NULL; @@ -283,7 +287,7 @@ set_load_params(cmd_args_t *args, char *optarg) } } - free(search); + free(searchdup); return (rc); } diff --git a/tests/zfs-tests/cmd/xattrtest/xattrtest.c b/tests/zfs-tests/cmd/xattrtest/xattrtest.c index 6b07d141a..68a809f17 100644 --- a/tests/zfs-tests/cmd/xattrtest/xattrtest.c +++ b/tests/zfs-tests/cmd/xattrtest/xattrtest.c @@ -252,6 +252,7 @@ drop_caches(void) rc = write(fd, "3", 1); if ((rc == -1) || (rc != 1)) { ERROR("Error %d: write(%d, \"3\", 1)\n", errno, fd); + (void) close(fd); return (errno); } @@ -630,6 +631,7 @@ unlink_files(void) rc = unlink(file); if ((rc == -1) && (errno != ENOENT)) { ERROR("Error %d: unlink(%s)\n", errno, file); + free(file); return (errno); } }