summaryrefslogtreecommitdiffstats
path: root/misc-utils
diff options
context:
space:
mode:
authorJeremy Katz2005-04-28 00:05:13 +0200
committerRuediger Meier2018-06-12 14:22:59 +0200
commita16d7294a868f4dacb1482d49820f0226e50e949 (patch)
tree2376000f775f4eb4071e4435c10a6f825d5a69da /misc-utils
parentkill warning (diff)
downloadkernel-qcow2-util-linux-a16d7294a868f4dacb1482d49820f0226e50e949.tar.gz
kernel-qcow2-util-linux-a16d7294a868f4dacb1482d49820f0226e50e949.tar.xz
kernel-qcow2-util-linux-a16d7294a868f4dacb1482d49820f0226e50e949.zip
- don't try to hardlink 0 byte files (#154404)
Diffstat (limited to 'misc-utils')
-rw-r--r--misc-utils/hardlink.c4
1 files changed, 2 insertions, 2 deletions
diff --git a/misc-utils/hardlink.c b/misc-utils/hardlink.c
index 52cb41f42..7a6cf6f52 100644
--- a/misc-utils/hardlink.c
+++ b/misc-utils/hardlink.c
@@ -175,7 +175,7 @@ void rf (char *name)
fprintf(stderr, "\r%*s\r", (int)strlen(name)+2, "");
return;
}
- if (fp) {
+ if (fp && st.st_size > 0) {
p = mmap (NULL, st.st_size, PROT_READ, MAP_SHARED, fd, 0);
nmmap++;
if (p == (void *)-1) {
@@ -191,7 +191,7 @@ void rf (char *name)
st2.st_dev == st.st_dev) {
int fd2 = open (fp2->name, O_RDONLY);
if (fd2 < 0) continue;
- if (fstat (fd2, &st2) || !S_ISREG (st2.st_mode)) {
+ if (fstat (fd2, &st2) || !S_ISREG (st2.st_mode) || st2.st_size == 0) {
close (fd2);
continue;
}