]> git.ipfire.org Git - thirdparty/e2fsprogs.git/commitdiff
create_inode: fix potential memory leak in path_append()
authorLukas Czerner <lczerner@redhat.com>
Mon, 11 Feb 2019 17:00:10 +0000 (12:00 -0500)
committerTheodore Ts'o <tytso@mit.edu>
Mon, 11 Feb 2019 17:17:16 +0000 (12:17 -0500)
If realloc() fails in path_append() we will lose a memory pointed to by
target->path.  Fix it.

path_append() is used by mke2fs and e2fsdroid.

Signed-off-by: Lukas Czerner <lczerner@redhat.com>
Signed-off-by: Theodore Ts'o <tytso@mit.edu>
misc/create_inode.c

index 1b35c7690dd368576e4b74b65f4ee3327549fa34..aa865a41f7e8f07aebf712c1eac1a8f30771d380 100644 (file)
@@ -704,10 +704,12 @@ struct file_info {
 static errcode_t path_append(struct file_info *target, const char *file)
 {
        if (strlen(file) + target->path_len + 1 > target->path_max_len) {
+               void *p;
                target->path_max_len *= 2;
-               target->path = realloc(target->path, target->path_max_len);
-               if (!target->path)
+               p = realloc(target->path, target->path_max_len);
+               if (p == NULL)
                        return EXT2_ET_NO_MEMORY;
+               target->path = p;
        }
        target->path_len += sprintf(target->path + target->path_len, "/%s",
                                    file);