From ca46fa602b0d09bde851dc1eb85d689051089839 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=D0=BD=D0=B0=D0=B1?= Date: Mon, 3 May 2021 11:36:02 +0200 Subject: [PATCH] zpool: vdev_run_cmd(): don't free undefined pointers MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Reviewed-by: Brian Behlendorf Signed-off-by: Ahelenia ZiemiaƄska Closes #11993 --- cmd/zpool/zpool_iter.c | 15 ++++++++++----- 1 file changed, 10 insertions(+), 5 deletions(-) diff --git a/cmd/zpool/zpool_iter.c b/cmd/zpool/zpool_iter.c index d70d266699cf..3d7a0cfc35e6 100644 --- a/cmd/zpool/zpool_iter.c +++ b/cmd/zpool/zpool_iter.c @@ -494,19 +494,25 @@ vdev_run_cmd(vdev_cmd_data_t *data, char *cmd) /* Setup our custom environment variables */ rc = asprintf(&env[1], "VDEV_PATH=%s", data->path ? data->path : ""); - if (rc == -1) + if (rc == -1) { + env[1] = NULL; goto out; + } rc = asprintf(&env[2], "VDEV_UPATH=%s", data->upath ? data->upath : ""); - if (rc == -1) + if (rc == -1) { + env[2] = NULL; goto out; + } rc = asprintf(&env[3], "VDEV_ENC_SYSFS_PATH=%s", data->vdev_enc_sysfs_path ? data->vdev_enc_sysfs_path : ""); - if (rc == -1) + if (rc == -1) { + env[3] = NULL; goto out; + } /* Run the command */ rc = libzfs_run_process_get_stdout_nopath(cmd, argv, env, &lines, @@ -525,8 +531,7 @@ vdev_run_cmd(vdev_cmd_data_t *data, char *cmd) /* Start with i = 1 since env[0] was statically allocated */ for (i = 1; i < ARRAY_SIZE(env); i++) - if (env[i] != NULL) - free(env[i]); + free(env[i]); } /*