]> git.ipfire.org Git - thirdparty/libcgroup.git/commitdiff
cgclassify: Fix clang warnings
authorTom Hromatka <tom.hromatka@oracle.com>
Tue, 29 Jul 2025 16:41:15 +0000 (16:41 +0000)
committerKamalesh Babulal <kamalesh.babulal@oracle.com>
Fri, 1 Aug 2025 09:02:21 +0000 (14:32 +0530)
Fix the following clang warnings by shrinking the scan size from 4096 to
4095 to allow room for the null terminating character.

cgclassify.c:334:47: warning: 'sscanf' may overflow; destination buffer
in argument 4 has size 4096, but the corresponding specifier may require
size 4097 [-Wfortify-source]
  334 |                         ret = sscanf(buffer, "%d::%4096s\n",
&idx, cgrp_name);
      |
^
cgclassify.c:336:63: warning: 'sscanf' may overflow; destination buffer
in argument 5 has size 4096, but the corresponding specifier may require
size 4097 [-Wfortify-source]
  336 |                         ret = sscanf(buffer,
"%d:%[^:]:%4096s\n", &idx, ctrl_name, cgrp_name);
      |
^
cgclassify.c:497:40: warning: 'sscanf' may overflow; destination buffer
in argument 3 has size 4096, but the corresponding specifier may require
size 4097 [-Wfortify-source]
  497 |                 ret = sscanf(buffer, "%*s %4096s\n", cgrp_path);
      |                                                      ^

Signed-off-by: Tom Hromatka <tom.hromatka@oracle.com>
Signed-off-by: Kamalesh Babulal <kamalesh.babulal@oracle.com>
src/tools/cgclassify.c

index 368e01e52f525f3e4332459fdfe592f62b39722e..733c3021d09fa7f000ec4b9e70d10fcdee336d78 100644 (file)
@@ -331,9 +331,9 @@ static pid_t find_scope_pid(pid_t pid, int capture)
                /* read according to the cgroup mode */
                if (strstr(buffer, "::")) {
                        snprintf(ctrl_name, CONTROL_NAMELEN_MAX, "unified");
-                       ret = sscanf(buffer, "%d::%4096s\n", &idx, cgrp_name);
+                       ret = sscanf(buffer, "%d::%4095s\n", &idx, cgrp_name);
                } else {
-                       ret = sscanf(buffer, "%d:%[^:]:%4096s\n", &idx, ctrl_name, cgrp_name);
+                       ret = sscanf(buffer, "%d:%[^:]:%4095s\n", &idx, ctrl_name, cgrp_name);
                }
 
                if (ret != 2 && ret != 3) {
@@ -494,7 +494,7 @@ static void find_mnt_point(const char * const controller, char **mnt_point)
                                continue;
                }
 
-               ret = sscanf(buffer, "%*s %4096s\n", cgrp_path);
+               ret = sscanf(buffer, "%*s %4095s\n", cgrp_path);
                if (ret != 1) {
                        err("Failed during read of %s:%s\n", proc_mount, strerror(errno));
                        goto out;