]> git.ipfire.org Git - thirdparty/e2fsprogs.git/commitdiff
lsattr: fix potential 32-bit integer overflow warning
authorTheodore Ts'o <tytso@mit.edu>
Wed, 26 Feb 2025 04:08:55 +0000 (23:08 -0500)
committerTheodore Ts'o <tytso@mit.edu>
Wed, 26 Feb 2025 04:08:55 +0000 (23:08 -0500)
This can't happen in practice due to MAXPATHNAMELEN constraints, but
gcc is too dumb to know that.

Signed-off-by: Theodore Ts'o <tytso@mit.edu>
misc/lsattr.c

index 72f4c6816fbf80e56d4982a70cce5b3fb1f66b61..a5b11fc5afd611857a6d4788ec0153973befc90a 100644 (file)
@@ -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);