From: Kamalesh Babulal Date: Fri, 17 Feb 2023 09:59:30 +0000 (+0000) Subject: tools/cgset: fix Uninitialized pointer read X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=9ba3b163a7564e511d9ed6de2e5d389b441c408f;p=thirdparty%2Flibcgroup.git tools/cgset: fix Uninitialized pointer read Fix Uninitialized pointer read, reported by Coverity Tool: CID 307779 (#2 of 2): Uninitialized pointer read (UNINIT)22. uninit_use_in_call: Using uninitialized value src_cgroup when calling cgroup_free. In main(), src_cgrp points to a valid struct cgroup only when the user calls cgxset using --copy-from flag, Coverity warns about the freeing src_cgrp, which is uninitialized in the error path. This patch initializes converted_src_cgroup, src_cgroup and cgroup uninitialized pointers and checks is src_cgrp is valid pointer before passing it to cgroup_free() Signed-off-by: Kamalesh Babulal Signed-off-by: Tom Hromatka (cherry picked from commit 94ba8b65f8b3424232cf3fea5a06fbbfb921789a) --- diff --git a/src/tools/cgxset.c b/src/tools/cgxset.c index eaac1b09..1a8843af 100644 --- a/src/tools/cgxset.c +++ b/src/tools/cgxset.c @@ -144,10 +144,10 @@ int main(int argc, char *argv[]) int nv_number = 0; int nv_max = 0; - struct cgroup *converted_src_cgroup; + struct cgroup *converted_src_cgroup = NULL; char src_cg_path[FILENAME_MAX] = "\0"; - struct cgroup *src_cgroup; - struct cgroup *cgroup; + struct cgroup *src_cgroup = NULL; + struct cgroup *cgroup = NULL; enum cg_version_t src_version = CGROUP_UNK; bool ignore_unmappable = false; @@ -318,7 +318,8 @@ int main(int argc, char *argv[]) cgroup_free_err: if (cgroup) cgroup_free(&cgroup); - cgroup_free(&src_cgroup); + if (src_cgroup) + cgroup_free(&src_cgroup); err: free(name_value);