diff options
author | Eric Biggers <ebiggers@google.com> | 2023-03-23 00:44:21 +0000 |
---|---|---|
committer | Eric Biggers <ebiggers@google.com> | 2023-03-23 00:44:21 +0000 |
commit | 0749f83a2cf4c134a2403701ab78388500e53f76 (patch) | |
tree | ba46d0f7450097da884dad6df03666cd2cf6fa4b | |
parent | 1e498908c6ac13b4d5ec0117f4ddcd577aac607e (diff) | |
download | e2fsprogs-0749f83a2cf4c134a2403701ab78388500e53f76.tar.gz |
ext2simg: fix same_file() to check st_dev
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>
-rw-r--r-- | contrib/android/ext2simg.c | 2 |
1 files changed, 1 insertions, 1 deletions
diff --git a/contrib/android/ext2simg.c b/contrib/android/ext2simg.c index 9ef54cff..1bc23080 100644 --- a/contrib/android/ext2simg.c +++ b/contrib/android/ext2simg.c @@ -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[]) |