Whamcloud - gitweb
LU-17250 mgs: fix resource leak in name_create_osp 38/55238/2
authorEtienne AUJAMES <etienne.aujames@cea.fr>
Wed, 29 May 2024 19:32:27 +0000 (21:32 +0200)
committerOleg Drokin <green@whamcloud.com>
Wed, 5 Jun 2024 04:45:18 +0000 (04:45 +0000)
This patch fixes a resource leak detected by Coverity:

CID 425355:    (RESOURCE_LEAK)
/lustre/mgs/mgs_llog.c: 189 in name_create_osp()

Fixes: d4682ff ("LU-17250 mgs: generate a new MDT configuration by copy")
Signed-off-by: Etienne AUJAMES <eaujames@ddn.com>
Change-Id: I8e0cbc3507e5a9882b2cfadfd68aea318575fc7a
Reviewed-on: https://review.whamcloud.com/c/fs/lustre-release/+/55238
Tested-by: jenkins <devops@whamcloud.com>
Tested-by: Maloo <maloo@whamcloud.com>
Reviewed-by: Andreas Dilger <adilger@whamcloud.com>
Reviewed-by: Timothy Day <timday@amazon.com>
Reviewed-by: Oleg Drokin <green@whamcloud.com>
lustre/mgs/mgs_llog.c

index 76bbe52..285edc8 100644 (file)
@@ -170,7 +170,7 @@ static inline void name_destroy(char **name)
 static inline int name_create_osp(char **ospname, char **devtype, char *tgtname,
                                  int index)
 {
-       size_t size = strlen(tgtname) + sizeof("-osx-MDTXXXX");
+       size_t sz = strlen(tgtname) + sizeof("-osx-MDTXXXX");
        char *out = NULL;
        char *type = NULL;
 
@@ -181,12 +181,14 @@ static inline int name_create_osp(char **ospname, char **devtype, char *tgtname,
        else
                return -EINVAL;
 
-       OBD_ALLOC(out, size);
+       OBD_ALLOC(out, sz);
        if (!out)
                return -ENOMEM;
 
-       if (snprintf(out, size, "%s-%s-MDT%04x", tgtname, type, index) >= size)
+       if (snprintf(out, sz, "%s-%s-MDT%04x", tgtname, type, index) >= sz) {
+               OBD_FREE(out, sz);
                return -EOVERFLOW;
+       }
 
        *ospname = out;
        if (devtype)