From 6d5b175f13cc3e8d0eec30f9f1feb8ee68af89b8 Mon Sep 17 00:00:00 2001 From: Donald Buczek Date: Wed, 14 Dec 2022 23:47:05 +0100 Subject: [PATCH] Don't crash if hardlink source is missing --- cmirror.c | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/cmirror.c b/cmirror.c index 967235d..c625d05 100644 --- a/cmirror.c +++ b/cmirror.c @@ -765,9 +765,11 @@ static void slave(char *slave_path) { g_autofree char *hardlink = fn_unescape(word[7]); g_autoptr(FileInfo) fi_src = fileinfo_lstat(hardlink); if (!fi_src) { + // source removed, i/o error, --reduce or logic error. We could + // request the file here, but the above cases don't seem to + // ustify this. warn("%s: hardlink source %s: %m\n", filename, hardlink); - } - if (!fi_is || fi_is->dev != fi_src->dev || fi_is->ino != fi_src->ino) { + } else if (!fi_is || fi_is->dev != fi_src->dev || fi_is->ino != fi_src->ino) { if (fi_is) out_of_the_way(fi_is); if (!quiet)