Hello community, here is the log from the commit of package rsync for openSUSE:Factory checked in at 2014-04-23 20:35:44 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ Comparing /work/SRC/openSUSE:Factory/rsync (Old) and /work/SRC/openSUSE:Factory/.rsync.new (New) ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Package is "rsync" Changes: -------- --- /work/SRC/openSUSE:Factory/rsync/rsync.changes 2013-10-25 18:53:54.000000000 +0200 +++ /work/SRC/openSUSE:Factory/.rsync.new/rsync.changes 2014-04-23 20:35:49.000000000 +0200 @@ -1,0 +2,7 @@ +Tue Apr 15 14:57:34 UTC 2014 - vci...@suse.com + +- fix for CVE-2014-2855 (bnc#873740) + * a denial of service via CPU consumption + * added rsync-CVE-2014-2855.patch + +------------------------------------------------------------------- New: ---- rsync-CVE-2014-2855.patch ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ Other differences: ------------------ ++++++ rsync.spec ++++++ --- /var/tmp/diff_new_pack.87q7tB/_old 2014-04-23 20:35:49.000000000 +0200 +++ /var/tmp/diff_new_pack.87q7tB/_new 2014-04-23 20:35:49.000000000 +0200 @@ -1,7 +1,7 @@ # # spec file for package rsync # -# Copyright (c) 2013 SUSE LINUX Products GmbH, Nuernberg, Germany. +# Copyright (c) 2014 SUSE LINUX Products GmbH, Nuernberg, Germany. # # All modifications and additions to the file contributed by third parties # remain the property of their copyright owners, unless otherwise agreed @@ -43,6 +43,7 @@ Source12: %{name}.keyring Patch3: system-zlib.diff Patch4: 0001-use-lp_num_modules-instead-of-the-removed-lp_numserv.patch +Patch5: rsync-CVE-2014-2855.patch BuildRequires: autoconf BuildRequires: libacl-devel BuildRequires: libattr-devel @@ -86,6 +87,7 @@ %patch3 %endif %patch4 -p1 +%patch5 -p1 patch -p1 < patches/acls.diff patch -p1 < patches/xattrs.diff patch -p1 < patches/slp.diff ++++++ rsync-CVE-2014-2855.patch ++++++ >From 0dedfbce2c1b851684ba658861fe9d620636c56a Mon Sep 17 00:00:00 2001 From: Wayne Davison <way...@samba.org> Date: Sun, 13 Apr 2014 13:44:58 -0700 Subject: [PATCH] Avoid infinite wait reading secrets file. --- authenticate.c | 24 +++++++++++++----------- 1 files changed, 13 insertions(+), 11 deletions(-) diff --git a/authenticate.c b/authenticate.c index 3381b8c..c92746c 100644 --- a/authenticate.c +++ b/authenticate.c @@ -102,15 +102,16 @@ static const char *check_secret(int module, const char *user, const char *group, char pass2[MAX_DIGEST_LEN*2]; const char *fname = lp_secrets_file(module); STRUCT_STAT st; - int fd, ok = 1; + int ok = 1; int user_len = strlen(user); int group_len = group ? strlen(group) : 0; char *err; + FILE *fh; - if (!fname || !*fname || (fd = open(fname, O_RDONLY)) < 0) + if (!fname || !*fname || (fh = fopen(fname, "r")) == NULL) return "no secrets file"; - if (do_fstat(fd, &st) == -1) { + if (do_fstat(fileno(fh), &st) == -1) { rsyserr(FLOG, errno, "fstat(%s)", fname); ok = 0; } else if (lp_strict_modes(module)) { @@ -123,29 +124,30 @@ static const char *check_secret(int module, const char *user, const char *group, } } if (!ok) { - close(fd); + fclose(fh); return "ignoring secrets file"; } if (*user == '#') { /* Reject attempt to match a comment. */ - close(fd); + fclose(fh); return "invalid username"; } /* Try to find a line that starts with the user (or @group) name and a ':'. */ err = "secret not found"; - while ((user || group) && read_line_old(fd, line, sizeof line, 1)) { - const char **ptr, *s; + while ((user || group) && fgets(line, sizeof line, fh) != NULL) { + const char **ptr, *s = strtok(line, "\n\r"); int len; - if (*line == '@') { + if (!s) + continue; + if (*s == '@') { ptr = &group; len = group_len; - s = line+1; + s++; } else { ptr = &user; len = user_len; - s = line; } if (!*ptr || strncmp(s, *ptr, len) != 0 || s[len] != ':') continue; @@ -158,7 +160,7 @@ static const char *check_secret(int module, const char *user, const char *group, *ptr = NULL; /* Don't look for name again. */ } - close(fd); + fclose(fh); memset(line, 0, sizeof line); memset(pass2, 0, sizeof pass2); -- 1.7.0.4 -- To unsubscribe, e-mail: opensuse-commit+unsubscr...@opensuse.org For additional commands, e-mail: opensuse-commit+h...@opensuse.org