Whamcloud - gitweb
LU-17000 coverity: Fix Resource Leak(3) 02/52902/2
authorArshad Hussain <arshad.hussain@aeoncomputing.com>
Tue, 31 Oct 2023 10:24:27 +0000 (15:54 +0530)
committerOleg Drokin <green@whamcloud.com>
Sat, 18 Nov 2023 21:46:09 +0000 (21:46 +0000)
This patch fixes error reported by coverity run.

CoverityID: 404744 ("Resource leak")

Test-Parameters: trivial testlist=sanity,conf-sanity
Signed-off-by: Arshad Hussain <arshad.hussain@aeoncomputing.com>
Change-Id: Ib5a22dd09870fe43a36047e407d1dd57944c9413
Reviewed-on: https://review.whamcloud.com/c/fs/lustre-release/+/52902
Tested-by: jenkins <devops@whamcloud.com>
Tested-by: Maloo <maloo@whamcloud.com>
Reviewed-by: Timothy Day <timday@amazon.com>
Reviewed-by: Patrick Farrell <pfarrell@whamcloud.com>
Reviewed-by: James Simmons <jsimmons@infradead.org>
Reviewed-by: Oleg Drokin <green@whamcloud.com>
lustre/utils/obd.c

index a4e6219..9a39c6a 100644 (file)
@@ -5223,7 +5223,7 @@ int jt_pool_cmd(int argc, char **argv)
 
        switch (argc) {
        case 0:
-       case 1: return CMD_HELP;
+       case 1: { rc = CMD_HELP; goto out_cmd; }
        case 2: {
                rc = extract_fsname_poolname(argv, fsname, poolname);
                if (rc)
@@ -5240,9 +5240,11 @@ int jt_pool_cmd(int argc, char **argv)
                                return llog_poollist(fsname, poolname);
                        fprintf(stderr,
                                "Cannot run pool_list command since there is no local MGS/MDT or client\n");
-                       return CMD_HELP;
+                       rc = CMD_HELP;
+                       goto out_cmd;
                } else {
-                       return CMD_HELP;
+                       rc = CMD_HELP;
+                       goto out_cmd;
                }
 
                rc = pool_cmd(cmd, argv[0], argv[1], fsname, poolname, NULL);
@@ -5255,12 +5257,14 @@ int jt_pool_cmd(int argc, char **argv)
        default: {
                char format[2 * MAX_OBD_NAME];
 
-               if (strcmp("pool_remove", argv[0]) == 0)
+               if (strcmp("pool_remove", argv[0]) == 0) {
                        cmd = LCFG_POOL_REM;
-               else if (strcmp("pool_add", argv[0]) == 0)
+               } else if (strcmp("pool_add", argv[0]) == 0) {
                        cmd = LCFG_POOL_ADD;
-               else
-                       return CMD_HELP;
+               } else {
+                       rc = CMD_HELP;
+                       goto out_cmd;
+               }
 
                rc = extract_fsname_poolname(argv, fsname, poolname);
                if (rc)
@@ -5272,7 +5276,7 @@ int jt_pool_cmd(int argc, char **argv)
 
                        array_sz = get_array_idx(argv[i], format, &array);
                        if (array_sz == 0)
-                               return CMD_HELP;
+                               goto out;
 
                        cmd_start = cmds_nr;
                        cmds_nr += array_sz;
@@ -5327,7 +5331,7 @@ out:
                errno = -rc;
                perror(argv[0]);
        }
-
+out_cmd:
        return rc;
 }