From: Kamalesh Babulal Date: Wed, 27 Jul 2022 18:55:20 +0000 (-0600) Subject: tools/cgxget: fix resource leak in get_cv_value() X-Git-Tag: v3.0~12 X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=67287701aeca061f9df6c96bbf05df3dc4c5d1a9;p=thirdparty%2Flibcgroup.git tools/cgxget: fix resource leak in get_cv_value() Fix a resource leak, reported by the Coverity tool: CID 258291 (#1 of 1): Resource leak (RESOURCE_LEAK)8. leaked_storage: Variable handle going out of scope leaks the storage it points to. In get_cv_value(), currently, we goto end label, on the failure of strdup() before closing the handle, leaking the resource. Fix it by removing the goto, that allows the code flow to close the handle and execute the code under the end label. Signed-off-by: Kamalesh Babulal Signed-off-by: Tom Hromatka --- diff --git a/src/tools/cgxget.c b/src/tools/cgxget.c index 787c0e25..0a8cbc56 100644 --- a/src/tools/cgxget.c +++ b/src/tools/cgxget.c @@ -520,7 +520,7 @@ static int get_cv_value(struct control_value * const cv, const char * const cg_n strncpy(cv->value, tmp_line, CG_CONTROL_VALUE_MAX - 1); cv->multiline_value = strdup(cv->value); if (cv->multiline_value == NULL) - goto end; + goto read_end; while ((ret = cgroup_read_value_next(&handle, tmp_line, LL_MAX)) == 0) { if (ret == 0) {