In disassemble_status func, for dealing with selector args,
word is allocated by get_word func. However, word is not freed.
Then a memory leak occurs.
Here, we call FREE(word) to free word.
Fixes: 35ad40b4 ('leastpending IO loadbalancing is not displayed properly')
Signed-off-by: Zhiqiang Liu <[email protected]>
Signed-off-by: lixiaokeng <[email protected]>
Reviewed-by: Benjamin Marzinski <[email protected]>
---
libmultipath/dmparser.c | 5 +++++
1 file changed, 5 insertions(+)
diff --git a/libmultipath/dmparser.c b/libmultipath/dmparser.c
index 3dc77242..33f47405 100644
--- a/libmultipath/dmparser.c
+++ b/libmultipath/dmparser.c
@@ -580,10 +580,15 @@ int disassemble_status(char *params, struct multipath
*mpp)
if (!strncmp(mpp->selector,
"least-pending", 13)) {
p += get_word(p, &word);
+
+ if (!word)
+ return 1;
+
if (sscanf(word,"%d:*d",
&def_minio) == 1 &&
def_minio != mpp->minio)
mpp->minio = def_minio;
+ FREE(word);
} else
p += get_word(p, NULL);
}
--
2.24.0.windows.2
--
dm-devel mailing list
[email protected]
https://www.redhat.com/mailman/listinfo/dm-devel