]> 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:40:08 +0000 (13:40 -0600)
committerTom Hromatka <tom.hromatka@oracle.com>
Mon, 11 Jul 2022 19:40:15 +0000 (13:40 -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>
src/tools/cgget.c

index 5c3d302020b4941c4354d9f2f7f14f701fe64b46..ea6a57017b67c3c607c04035bc5ac37d40d31cef 100644 (file)
@@ -506,7 +506,7 @@ static int get_cv_value(struct control_value * const cv, const char * const cg_n
                        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");