Skip to content

Commit

Permalink
rsync: Add patch to exit on hard link failure
Browse files Browse the repository at this point in the history
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
  • Loading branch information
donald committed Jun 21, 2022
1 parent 2bd9bec commit 969d73e
Showing 1 changed file with 3 additions and 0 deletions.
3 changes: 3 additions & 0 deletions rsync.be0
Original file line number Diff line number Diff line change
Expand Up @@ -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
Expand Down

0 comments on commit 969d73e

Please sign in to comment.