From: Tom Hromatka Date: Tue, 29 Jul 2025 16:41:15 +0000 (+0000) Subject: cgclassify: Fix clang warnings X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=ac9b431f3d0f7542b5cf75f1dce7bca4b3c07ee6;p=thirdparty%2Flibcgroup.git cgclassify: Fix clang warnings 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 Signed-off-by: Kamalesh Babulal --- diff --git a/src/tools/cgclassify.c b/src/tools/cgclassify.c index 368e01e5..733c3021 100644 --- a/src/tools/cgclassify.c +++ b/src/tools/cgclassify.c @@ -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;