From 5317af5f1425e89dc723c81a4e33190c1e61b059 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?J=C3=B6rg=20Thalheim?= Date: Sat, 18 Nov 2023 20:25:13 +0100 Subject: [PATCH] drop rsync patch again --- src/default.nix | 7 +--- src/rsync-fortified-strlcpy-fix.patch | 49 --------------------------- 2 files changed, 1 insertion(+), 55 deletions(-) delete mode 100644 src/rsync-fortified-strlcpy-fix.patch diff --git a/src/default.nix b/src/default.nix index 5a0d476..a992f73 100644 --- a/src/default.nix +++ b/src/default.nix @@ -16,11 +16,6 @@ , mkShellNoCC }: let - # TODO: add this to nixpkgs - rsync' = rsync.overrideAttrs (old: { - # https://github.com/WayneD/rsync/issues/511#issuecomment-1774612577 - patches = [ ./rsync-fortified-strlcpy-fix.patch ]; - }); runtimeDeps = [ gitMinimal # for git flakes # pinned because nix-copy-closure hangs if ControlPath provided for SSH: https://github.com/NixOS/nix/issues/8480 @@ -31,7 +26,7 @@ let gawk findutils gnused # needed by ssh-copy-id - rsync' # used to upload extra-files + rsync # used to upload extra-files ]; in stdenv.mkDerivation { diff --git a/src/rsync-fortified-strlcpy-fix.patch b/src/rsync-fortified-strlcpy-fix.patch deleted file mode 100644 index 296445b..0000000 --- a/src/rsync-fortified-strlcpy-fix.patch +++ /dev/null @@ -1,49 +0,0 @@ -From 1f83963f59960150e8c46112daa8411324c1f209 Mon Sep 17 00:00:00 2001 -From: Jiri Slaby -Date: Fri, 18 Aug 2023 08:26:20 +0200 -Subject: [PATCH] exclude: fix crashes with fortified strlcpy() - -Fortified (-D_FORTIFY_SOURCE=2 for gcc) builds make strlcpy() crash when -its third parameter (size) is larger than the buffer: - $ rsync -FFXHav '--filter=merge global-rsync-filter' Align-37-43/ xxx - sending incremental file list - *** buffer overflow detected ***: terminated - -It's in the exclude code in setup_merge_file(): - strlcpy(y, save, MAXPATHLEN); - -Note the 'y' pointer was incremented, so it no longer points to memory -with MAXPATHLEN "owned" bytes. - -Fix it by remembering the number of copied bytes into the 'save' buffer -and use that instead of MAXPATHLEN which is clearly incorrect. - -Fixes #511. ---- - exclude.c | 5 +++-- - 1 file changed, 3 insertions(+), 2 deletions(-) - -diff --git a/exclude.c b/exclude.c -index ffe55b167..1a5de3b9e 100644 ---- a/exclude.c -+++ b/exclude.c -@@ -720,7 +720,8 @@ static BOOL setup_merge_file(int mergelist_num, filter_rule *ex, - parent_dirscan = True; - while (*y) { - char save[MAXPATHLEN]; -- strlcpy(save, y, MAXPATHLEN); -+ /* copylen is strlen(y) which is < MAXPATHLEN. +1 for \0 */ -+ size_t copylen = strlcpy(save, y, MAXPATHLEN) + 1; - *y = '\0'; - dirbuf_len = y - dirbuf; - strlcpy(x, ex->pattern, MAXPATHLEN - (x - buf)); -@@ -734,7 +735,7 @@ static BOOL setup_merge_file(int mergelist_num, filter_rule *ex, - lp->head = NULL; - } - lp->tail = NULL; -- strlcpy(y, save, MAXPATHLEN); -+ strlcpy(y, save, copylen); - while ((*x++ = *y++) != '/') {} - } - parent_dirscan = False; -