mirror of
https://github.com/NixOS/nixpkgs.git
synced 2025-07-14 14:10:33 +03:00
Merge pull request #305294 from kashw2/rsync
rsync: 3.2.7 -> 3.3.0; removed patches
This commit is contained in:
commit
cc23a8d008
3 changed files with 2 additions and 71 deletions
|
@ -1,12 +0,0 @@
|
|||
diff -rup rsync-3.2.7/configure.sh rsync-3.2.7-fixed/configure.sh
|
||||
--- rsync-3.2.7/configure.sh 2022-10-20 17:57:22
|
||||
+++ rsync-3.2.7-fixed/configure.sh 2024-01-01 19:51:58
|
||||
@@ -7706,7 +7706,7 @@ else $as_nop
|
||||
#include <stdlib.h>
|
||||
#include <sys/types.h>
|
||||
#include <sys/socket.h>
|
||||
-main()
|
||||
+int main()
|
||||
{
|
||||
if (socket(AF_INET6, SOCK_STREAM, 0) < 0)
|
||||
exit(1);
|
|
@ -20,24 +20,16 @@
|
|||
|
||||
stdenv.mkDerivation rec {
|
||||
pname = "rsync";
|
||||
version = "3.2.7";
|
||||
version = "3.3.0";
|
||||
|
||||
src = fetchurl {
|
||||
# signed with key 0048 C8B0 26D4 C96F 0E58 9C2F 6C85 9FB1 4B96 A8C5
|
||||
url = "mirror://samba/rsync/src/rsync-${version}.tar.gz";
|
||||
sha256 = "sha256-Tn2dP27RCHjFjF+3JKZ9rPS2qsc0CxPkiPstxBNG8rs=";
|
||||
hash = "sha256-c5nppnCMMtZ4pypjIZ6W8jvgviM25Q/RNISY0HBB35A=";
|
||||
};
|
||||
|
||||
nativeBuildInputs = [ perl ];
|
||||
|
||||
patches = [
|
||||
# https://github.com/WayneD/rsync/issues/511#issuecomment-1774612577
|
||||
# original source: https://build.opensuse.org/package/view_file/network/rsync/rsync-fortified-strlcpy-fix.patch?expand=1&rev=3f8dd2f4a404c96c0f69176e60893714
|
||||
./rsync-fortified-strlcpy-fix.patch
|
||||
# https://github.com/WayneD/rsync/pull/558
|
||||
./configure.ac-fix-failing-IPv6-check.patch
|
||||
];
|
||||
|
||||
buildInputs = [ libiconv zlib popt ]
|
||||
++ lib.optional enableACLs acl
|
||||
++ lib.optional enableZstd zstd
|
||||
|
|
|
@ -1,49 +0,0 @@
|
|||
From 1f83963f59960150e8c46112daa8411324c1f209 Mon Sep 17 00:00:00 2001
|
||||
From: Jiri Slaby <jslaby@suse.cz>
|
||||
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;
|
||||
|
Loading…
Add table
Add a link
Reference in a new issue