]> git.ipfire.org Git - thirdparty/libcgroup.git/commitdiff
tools/cgget: fix a resource leak get_cv_value()
authorKamalesh Babulal <kamalesh.babulal@oracle.com>
Mon, 11 Jul 2022 19:41:16 +0000 (13:41 -0600)
committerTom Hromatka <tom.hromatka@oracle.com>
Mon, 11 Jul 2022 19:41:20 +0000 (13:41 -0600)
Fix a resource leak in get_cv_value(), reported by Coverity tool:

CID 258291 (#1 of 1): Resource leak (RESOURCE_LEAK). leaked_storage:
Variable handle going out of scope leaks the storage it points to.

failure on the realloc(), doesn't free the *handle. Fix it by using
the goto read_end(), that does the job of freeing the handle.

Suggested-by: Tom Hromatka <tom.hromatka@oracle.com>
Signed-off-by: Kamalesh Babulal <kamalesh.babulal@oracle.com>
Signed-off-by: Tom Hromatka <tom.hromatka@oracle.com>
(cherry picked from commit aeded1e4176978d9705dbc5f9d9609ebf843b189)

src/tools/cgget.c

index f27a0cdacb0b0b86d364adb5918e7006e003133c..714db10460fc6cc6757bf788a8d9d387ce4321f5 100644 (file)
@@ -509,7 +509,7 @@ static int get_cv_value(struct control_value * const cv,
                        tmp = realloc(cv->multiline_value, sizeof(char) *
                                (strlen(cv->multiline_value) + strlen(tmp_line) + 3));
                        if (tmp == NULL)
-                               goto end;
+                               goto read_end;
 
                        cv->multiline_value = tmp;
                        strcat(cv->multiline_value, "\n\t");