From 43df274a1bff78a36ca65448e5b5adde2250581e Mon Sep 17 00:00:00 2001 From: Etienne AUJAMES Date: Wed, 29 May 2024 21:32:27 +0200 Subject: [PATCH] LU-17250 mgs: fix resource leak in name_create_osp 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 Change-Id: I8e0cbc3507e5a9882b2cfadfd68aea318575fc7a Reviewed-on: https://review.whamcloud.com/c/fs/lustre-release/+/55238 Tested-by: jenkins Tested-by: Maloo Reviewed-by: Andreas Dilger Reviewed-by: Timothy Day Reviewed-by: Oleg Drokin --- lustre/mgs/mgs_llog.c | 8 +++++--- 1 file changed, 5 insertions(+), 3 deletions(-) diff --git a/lustre/mgs/mgs_llog.c b/lustre/mgs/mgs_llog.c index 76bbe52..285edc8 100644 --- a/lustre/mgs/mgs_llog.c +++ b/lustre/mgs/mgs_llog.c @@ -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) -- 1.8.3.1