From 969d73e037822b9ee6f146b3ba4098ab242a8d07 Mon Sep 17 00:00:00 2001 From: Donald Buczek Date: Tue, 21 Jun 2022 16:14:01 +0200 Subject: [PATCH] rsync: Add patch to exit on hard link failure Rsync might crash if we continue after a hard link failure. There is no reasonable way anyway, so just abort with recognizable error code. https://github.com/WayneD/rsync/issues/329 --- hlink.c | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/hlink.c b/hlink.c index 66810a3e..23869872 100644 --- a/hlink.c +++ b/hlink.c @@ -464,7 +464,10 @@ int hard_link_one(struct file_struct *file, const char *fname, code = FERROR_XFER; rsyserr(code, errno, "link %s => %s failed", full_fname(fname), oldname); - return 0; + + /* This is broken beyond repair for --link-dest. No good way to continue here. */ + fprintf(stderr, "Aborting due to hard link failure\n"); + _exit(33); } file->flags |= FLAG_HLINK_DONE; -- 2.36.0 --- rsync.be0 | 3 +++ 1 file changed, 3 insertions(+) diff --git a/rsync.be0 b/rsync.be0 index 9041000e6..4b3be450d 100755 --- a/rsync.be0 +++ b/rsync.be0 @@ -12,6 +12,9 @@ SRCURL[0]="https://beehive.molgen.mpg.de/26f1c64259fbd2ed7a59b28d2787ecf2/rsync- # SRCURL[1]="https://launchpad.net/debian/+archive/primary/+sourcefiles/rsync/3.2.4-1/rsync_3.2.4-1.debian.tar.xz" SRCURL[1]="https://beehive.molgen.mpg.de/54f987de1f929d0411bbb815c248f28d/rsync_3.2.4-1.debian.tar.xz" +# PATCHURL+=(/src/mariux/patches/rsync-abort-on-hard-link-failure.patch) +PATCHURL+=("https://beehive.molgen.mpg.de/2d9d0053167d4d6e202357edda0a4a4d/rsync-abort-on-hard-link-failure.patch") + BEE_BUILDTYPE=autotools # build_in_sourcedir