From d0662a1beb03033480dc0ac36e905b607e1e8eb8 Mon Sep 17 00:00:00 2001 From: luozhengzheng Date: Sat, 24 Sep 2016 00:10:50 +0800 Subject: [PATCH] Fix coverity defects: CID 147613 147614 147616 147617 coverity scan CID:147617,type: resource leaks coverity scan CID:147616,type: resource leaks coverity scan CID:147614,type: resource leaks coverity scan CID:147613,type: resource leaks Reviewed-by: Brian Behlendorf Signed-off-by: luozhengzheng Closes #5150 --- cmd/zpios/zpios_util.c | 12 ++++++++---- tests/zfs-tests/cmd/xattrtest/xattrtest.c | 2 ++ 2 files changed, 10 insertions(+), 4 deletions(-) diff --git a/cmd/zpios/zpios_util.c b/cmd/zpios/zpios_util.c index 2d248ed9ae..b31ba51c8e 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 6b07d141ae..68a809f177 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); } }