From 8d8ebe2ba4610fd5ffeade653b66eeec54781f34 Mon Sep 17 00:00:00 2001 From: Rodrigo Siqueira Date: Sat, 7 Jul 2018 20:23:53 -0300 Subject: Avoid truncate string in __igt_lsof_fds MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Note that 'proc_path' parameter in __igt_lsof_fds receives a string which was initialized with the size of PATH_MAX and the local variable 'path' has the same size, but it also have to append: '/', '\0', and the directory name. This situation caused the warning described below. warning: ‘%s’ directive output may be truncated writing up to 255 bytes into a region of size between 0 and 4095 [-Wformat-truncation=] snprintf(path, sizeof(path), "%s/%s", proc_path, d->d_name); note: ‘snprintf’ output between 2 and 4352 bytes into a destination of size 4096 [..] This commit fixes this problem by changing the string size passed by __igt_lsoft to __igt_lsof_fds. The max size for the string is strlen("/proc/%d/cwd")+1 where "%d" can be estimated with CEILING(LOG_10(INT_MAX)), in this sense, it is safe to define a path size of 30 characters. Signed-off-by: Rodrigo Siqueira Reviewed-by: Arkadiusz Hiler --- lib/igt_aux.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) (limited to 'lib/igt_aux.c') diff --git a/lib/igt_aux.c b/lib/igt_aux.c index ca8ccfbd..d9dbf7ce 100644 --- a/lib/igt_aux.c +++ b/lib/igt_aux.c @@ -1485,7 +1485,7 @@ __igt_lsof(const char *dir) PROCTAB *proc; proc_t *proc_info; - char path[PATH_MAX]; + char path[30]; char *name_lnk; struct stat st; int state = 0; -- cgit v1.2.3