Whamcloud - gitweb
AOSP: ext2simg: fix same_file() to check st_dev
authorEric Biggers <ebiggers@google.com>
Thu, 23 Mar 2023 00:44:21 +0000 (00:44 +0000)
committerTheodore Ts'o <tytso@mit.edu>
Mon, 20 May 2024 16:55:23 +0000 (12:55 -0400)
File identity is determined by the combination of st_dev and st_ino, not
by st_ino alone.

This fixes a bug where ext2simg would needlessly make a copy of all the
data when the input and output files happened to have the same st_ino.

Fixes: db6f320912cf ("AOSP: android: add the ext2simg tool")
Change-Id: I94e4bf57d9f91b31e5438768805e9f10bec3411d
Signed-off-by: Eric Biggers <ebiggers@google.com>
From AOSP commit: 0749f83a2cf4c134a2403701ab78388500e53f76

contrib/android/ext2simg.c

index 9ef54cf..1bc2308 100644 (file)
@@ -189,7 +189,7 @@ static bool same_file(const char *in, const char *out)
                ext2fs_fatal(errno, "stat %s\n", in);
        if (lstat(out, &st2) == -1)
                ext2fs_fatal(errno, "stat %s\n", out);
-       return st1.st_ino == st2.st_ino;
+       return st1.st_dev == st2.st_dev && st1.st_ino == st2.st_ino;
 }
 
 int main(int argc, char *argv[])