From a0ae27b8bfd2cbf239aa1af39869f63e47f9350b Mon Sep 17 00:00:00 2001 From: Theodore Ts'o Date: Tue, 25 Feb 2025 23:08:55 -0500 Subject: [PATCH] lsattr: fix potential 32-bit integer overflow warning This can't happen in practice due to MAXPATHNAMELEN constraints, but gcc is too dumb to know that. Signed-off-by: Theodore Ts'o --- misc/lsattr.c | 8 ++++++-- 1 file changed, 6 insertions(+), 2 deletions(-) diff --git a/misc/lsattr.c b/misc/lsattr.c index 72f4c6816..a5b11fc5a 100644 --- a/misc/lsattr.c +++ b/misc/lsattr.c @@ -141,9 +141,13 @@ static int lsattr_dir_proc (const char * dir_name, struct dirent * de, { STRUCT_STAT st; char *path; - int dir_len = strlen(dir_name); + size_t dir_len = strlen(dir_name), name_len = strlen (de->d_name); - path = malloc(dir_len + strlen (de->d_name) + 2); + if ((dir_len > 1024 * 1024 * 1024) || + (name_len > 1024 * 1024 * 1024)) + return -1; + + path = malloc(dir_len + name_len + 2); if (!path) { fputs(_("Couldn't allocate path variable in lsattr_dir_proc\n"), stderr); -- 2.47.2