Hello community, here is the log from the commit of package sed for openSUSE:Factory checked in at 2020-09-04 10:53:42 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ Comparing /work/SRC/openSUSE:Factory/sed (Old) and /work/SRC/openSUSE:Factory/.sed.new.3399 (New) ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Package is "sed" Fri Sep 4 10:53:42 2020 rev:35 rq:830986 version:4.8 Changes: -------- --- /work/SRC/openSUSE:Factory/sed/sed.changes 2020-01-25 13:23:04.032007820 +0100 +++ /work/SRC/openSUSE:Factory/.sed.new.3399/sed.changes 2020-09-04 10:53:47.214452186 +0200 @@ -1,0 +2,8 @@ +Mon Aug 31 07:00:11 UTC 2020 - Bernhard Voelker <[email protected]> + +- gnulib-test-avoid-FP-perror-strerror.patch: Add patch to + avoid false-positive error in gnulib tests 'test-perror2' and + 'test-strerror_r', visible on armv7l. +- sed.spec: Reference the patch. + +------------------------------------------------------------------- New: ---- gnulib-test-avoid-FP-perror-strerror.patch ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ Other differences: ------------------ ++++++ sed.spec ++++++ --- /var/tmp/diff_new_pack.g1I8Rt/_old 2020-09-04 10:53:48.022452619 +0200 +++ /var/tmp/diff_new_pack.g1I8Rt/_new 2020-09-04 10:53:48.026452621 +0200 @@ -28,6 +28,7 @@ Source2: %{name}.keyring # PATCH-FIX-SLE sed-dont_close_twice.patch bnc@880817 [email protected] -- Fix double close. Patch0: sed-dont_close_twice.patch +Patch1: gnulib-test-avoid-FP-perror-strerror.patch BuildRequires: libacl-devel BuildRequires: libselinux-devel Requires(post): %{install_info_prereq} @@ -45,6 +46,7 @@ %prep %setup -q %patch0 -p1 +%patch1 %build %define warn_flags -Wall -Wstrict-prototypes -Wpointer-arith -Wformat-security ++++++ gnulib-test-avoid-FP-perror-strerror.patch ++++++ Avoid false-positive error in gnulib tests 'test-perror2' and 'test-strerror_r'. On openSUSE OBS, the above gnulib tests fail on armv7l. Corresponding report on the gnulib mailing list: https://lists.gnu.org/r/bug-gnulib/2020-08/msg00220.html From: Florian Weimer Date: Thu, 27 Aug 2020 09:41:34 +0200 Subject: Use-after-free in test-perror2, test-strerror_r The problem is visible with glibc 2.32 under valgrind: ==20== Invalid read of size 1 ==20== at 0x483DAB4: strcmp (vg_replace_strmem.c:847) ==20== by 0x109414: main (test-perror2.c:84) ==20== Address 0x4a1a3d0 is 0 bytes inside a block of size 17 free'd ==20== at 0x483A9F5: free (vg_replace_malloc.c:538) ==20== by 0x48E2134: strerror_l (in /usr/lib64/libc-2.32.so) ==20== by 0x109328: main (test-perror2.c:72) ==20== Block was alloc'd at ==20== at 0x4839809: malloc (vg_replace_malloc.c:307) ==20== by 0x48CA03F: __vasprintf_internal (in /usr/lib64/libc-2.32.so) ==20== by 0x48A46F9: asprintf (in /usr/lib64/libc-2.32.so) ==20== by 0x48E2184: strerror_l (in /usr/lib64/libc-2.32.so) ==20== by 0x1092E2: main (test-perror2.c:67) ==20== ==20== Invalid read of size 1 ==20== at 0x483DAC8: strcmp (vg_replace_strmem.c:847) ==20== by 0x109414: main (test-perror2.c:84) ==20== Address 0x4a1a3d1 is 1 bytes inside a block of size 17 free'd ==20== at 0x483A9F5: free (vg_replace_malloc.c:538) ==20== by 0x48E2134: strerror_l (in /usr/lib64/libc-2.32.so) ==20== by 0x109328: main (test-perror2.c:72) ==20== Block was alloc'd at ==20== at 0x4839809: malloc (vg_replace_malloc.c:307) ==20== by 0x48CA03F: __vasprintf_internal (in /usr/lib64/libc-2.32.so) ==20== by 0x48A46F9: asprintf (in /usr/lib64/libc-2.32.so) ==20== by 0x48E2184: strerror_l (in /usr/lib64/libc-2.32.so) ==20== by 0x1092E2: main (test-perror2.c:67) I think it's the test that's invalid. This was reported as an actual grep test failure (without valgrind) on 32-bit Arm, where glibc malloc happens to return a different buffer address for the internal allocation (so that msg3 != msg4). test-strerror_r has the same issue. Thanks, Florian Upstream patch: https://git.sv.gnu.org/cgit/gnulib.git/commit/?id=175e0bc72808 From 175e0bc72808d564074c4adcc72aeadb74adfcc6 Mon Sep 17 00:00:00 2001 From: Paul Eggert <[email protected]> Date: Thu, 27 Aug 2020 17:52:58 -0700 Subject: [PATCH] perror, strerror_r: remove unportable tests Problem reported by Florian Weimer in: https://lists.gnu.org/r/bug-gnulib/2020-08/msg00220.html * tests/test-perror2.c (main): * tests/test-strerror_r.c (main): Omit unportable tests. This downstream patch is identical to upstream one modulo the ChangeLog entry. --- gnulib-tests/test-perror2.c | 3 --- gnulib-tests/test-strerror_r.c | 3 --- 2 files changed, 6 deletions(-) Index: gnulib-tests/test-perror2.c =================================================================== --- gnulib-tests/test-perror2.c.orig +++ gnulib-tests/test-perror2.c @@ -79,9 +79,6 @@ main (void) errno = -5; perror (""); ASSERT (!ferror (stderr)); - ASSERT (msg1 == msg2 || msg1 == msg4 || STREQ (msg1, str1)); - ASSERT (msg2 == msg4 || STREQ (msg2, str2)); - ASSERT (msg3 == msg4 || STREQ (msg3, str3)); ASSERT (STREQ (msg4, str4)); free (str1); Index: gnulib-tests/test-strerror_r.c =================================================================== --- gnulib-tests/test-strerror_r.c.orig +++ gnulib-tests/test-strerror_r.c @@ -165,9 +165,6 @@ main (void) strerror_r (EACCES, buf, sizeof buf); strerror_r (-5, buf, sizeof buf); - ASSERT (msg1 == msg2 || msg1 == msg4 || STREQ (msg1, str1)); - ASSERT (msg2 == msg4 || STREQ (msg2, str2)); - ASSERT (msg3 == msg4 || STREQ (msg3, str3)); ASSERT (STREQ (msg4, str4)); free (str1);
