diff --git a/gnulib-test-avoid-FP-perror-strerror.patch b/gnulib-test-avoid-FP-perror-strerror.patch deleted file mode 100644 index 482a45d..0000000 --- a/gnulib-test-avoid-FP-perror-strerror.patch +++ /dev/null @@ -1,101 +0,0 @@ -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 - 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); diff --git a/sed-4.8.tar.xz b/sed-4.8.tar.xz deleted file mode 100644 index d989742..0000000 --- a/sed-4.8.tar.xz +++ /dev/null @@ -1,3 +0,0 @@ -version https://git-lfs.github.com/spec/v1 -oid sha256:f79b0cfea71b37a8eeec8490db6c5f7ae7719c35587f21edb0617f370eeff633 -size 1348048 diff --git a/sed-4.8.tar.xz.sig b/sed-4.8.tar.xz.sig deleted file mode 100644 index ec3c650..0000000 --- a/sed-4.8.tar.xz.sig +++ /dev/null @@ -1,16 +0,0 @@ ------BEGIN PGP SIGNATURE----- - -iQIzBAABCgAdFiEEFV0/xQDINEhtHupnf9n8ywAL7u4FAl4ekRoACgkQf9n8ywAL -7u62aA//a9WOFsQR4oTCAX5yYw/RDD4600hMdWmhoV4gSTZxaPWlA5MX0hdT4Y3X -GZ3/QFckfJ1k8U5ZEsCPkCCh0U2k8031+Sc4a5Jn8NEIqeP2VGPoB0APZOkEJFdm -tWwD3cAyyDX6S2HCA1OqQsbeSmBIzn/iZU7jPTplih2VO4mzglcv2eJiDIICipSI -FRnQ9QqHA5kyO4ndNB51ESpUGvCgQ7dGe85kozaM6xbhoTdIVLvxjUuAGQNaeSNa -fqnFqEfEfWE5qfw0hPoUU2WVdayRq+3Sm977hIcdy8FzM4k4zU66GZnYd6aSfVEj -RpAwJRFG8GkLIf+ALMeGUcIWDX64E5XLjFXFM9zV9ffI+Snlpqz745ru3SXBF9js -6Xvab+tAkP17Okj1SzfWjUHs5PAaF59dt/SQGpa+8CroYZJo0/xT05oI4EuNRL0n -gfb9PQPYcF+aQNsBEU1av+x/cui1uQKxFzJ8TdvJsLjKux7tPOyQA/QLGF969JwO -sjaNyTpGk7dkOX/7dCtXAFXRsJVTKCc6p8LzEWnMV0rEhzznq0Ey42n2xEJF6NGL -ipV5uKRXoD/6ok6ZIfSTbyY3N4pdBAlkz5o3s1ikbQ1D/eiqq7v3Rpsy5lvpvQeZ -5GsHowlh6BmlK5kYcavDmr7RKoBUwQttkEu3OuDOrFhVIIKWB8Q= -=XavH ------END PGP SIGNATURE----- diff --git a/sed-4.9.tar.xz b/sed-4.9.tar.xz new file mode 100644 index 0000000..229c0da --- /dev/null +++ b/sed-4.9.tar.xz @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:6e226b732e1cd739464ad6862bd1a1aba42d7982922da7a53519631d24975181 +size 1397092 diff --git a/sed-4.9.tar.xz.sig b/sed-4.9.tar.xz.sig new file mode 100644 index 0000000..d67e509 --- /dev/null +++ b/sed-4.9.tar.xz.sig @@ -0,0 +1,16 @@ +-----BEGIN PGP SIGNATURE----- + +iQIzBAABCgAdFiEEFV0/xQDINEhtHupnf9n8ywAL7u4FAmNoLIYACgkQf9n8ywAL +7u7Q3w//es7+47eG6Av4Kp4KMrJB8DbFRgshO/nTSAGX4HsZVtcEyOnKWQPjr8hB +1pNLZHWzEPmfhs3bP+l5r7CF3ryjxScZwuRC4+eIysJSXYJ7fWYLM1D0D/T9nOrl +B7mmswoYgWijHAwGW/jMvttcO9eKluCkXczxRYNdnrLaVh9deS2D4BgWEM3fM/KR +tXQj5P4v2o4fpixsjgEqBY9RUkNWZZ4GPQwVVE7JYgY2r74mjsgwwSa+Eb/dEJT5 +o+nTafvlFJXwnZvJeDG23tQbT4e+fW0+TzSMBubLCiDV29K8uOB4p3dw/3swRiCz +wwKr0twtJ50K6PwsayoSWaF1vMKRgzK+kzFVC1fxqGGYm522ssdqFjRGYfwZJv2x ++Mpxy5fj20KiHnfjN95nd+EDxEblbbyWhn8EG6rR/qoVku74DEV5dntxf/GVBZsy ++NMKGz2+W5/KBRWApYoQBHjLlQpoYzmQSBRNsInlPMWhoRnF/7sry1H3Dlnu+5QY +mVSXfzFyUY1a4dcJXIHBs27uIGzLhuf2hVqfcOs4eDLbA7gzBn3Tl/GJcFW7lQzB +9a97YCnDETPN8rU4IhIlmH0LJIVMpBPy/sCTYYuoE2oFaB91si5IHBqB9TV7P3VV +bCCduHjHyER8S50gFJY+qkBdkfqOH/o18L0bgTRzoixSOY/32Qk= +=FMyH +-----END PGP SIGNATURE----- diff --git a/sed-dont_close_twice.patch b/sed-dont_close_twice.patch deleted file mode 100644 index 75e12fe..0000000 --- a/sed-dont_close_twice.patch +++ /dev/null @@ -1,16 +0,0 @@ -http://lists.gnu.org/archive/html/bug-gnu-utils/2014-06/msg00000.html - -Index: sed-4.6/sed/utils.c -=================================================================== ---- sed-4.6.orig/sed/utils.c -+++ sed-4.6/sed/utils.c -@@ -267,8 +267,8 @@ ck_fclose (FILE *stream) - { - if (!stream || stream == cur->fp) - { -- do_ck_fclose (cur->fp); - prev->link = cur->link; -+ do_ck_fclose (cur->fp); - free (cur->name); - free (cur); - } diff --git a/sed.changes b/sed.changes index 76904ca..0d23057 100644 --- a/sed.changes +++ b/sed.changes @@ -1,3 +1,33 @@ +------------------------------------------------------------------- +Mon Nov 7 18:49:22 UTC 2022 - Andreas Stieger + +- GNU sed 4.9: + * 'sed --follow-symlinks -i' no longer loops forever when its + operand is a symbolic link cycle. + * a program with an execution line longer than 2GB can no longer + trigger an out-of-bounds memory write. + * using the R command to read an input line of length longer than + 2GB can no longer trigger an out-of-bounds memory read. + * In locales using UTF-8 encoding, the regular expression '.' no + longer sometimes fails to match Unicode characters U+D400 + through U+D7FF (some Hangul Syllables, and Hangul Jamo + Extended-B) and Unicode characters U+108000 through U+10FFFF + (half of Supplemental Private Use Area plane B). + * I/O errors involving temp files no longer confuse sed into + using a FILE * pointer after fclosing it, which has undefined + behavior in C. + * New: The 'r' command now accepts address 0, allowing inserting + a file before the first line. + * Sed now prints the less-surprising variant in a corner case of + POSIX-unspecified behavior. Before, this would print "n". + Now, it prints "X": + printf n | sed 'sn\nnXn'; echo +- drop patches now upstream: + * gnulib-test-avoid-FP-perror-strerror.patch + * sed-dont_close_twice.patch +- disable profile guided optimization in build due to what seems to + be a bug in gnulib + ------------------------------------------------------------------- Fri Oct 16 08:47:29 UTC 2020 - Ludwig Nussel diff --git a/sed.spec b/sed.spec index ad7d840..8c68479 100644 --- a/sed.spec +++ b/sed.spec @@ -1,7 +1,7 @@ # # spec file for package sed # -# Copyright (c) 2020 SUSE LLC +# Copyright (c) 2022 SUSE LLC # # All modifications and additions to the file contributed by third parties # remain the property of their copyright owners, unless otherwise agreed @@ -17,7 +17,7 @@ Name: sed -Version: 4.8 +Version: 4.9 Release: 0 Summary: A Stream-Oriented Non-Interactive Text Editor License: GPL-3.0-or-later @@ -26,13 +26,8 @@ URL: https://www.gnu.org/software/sed/ Source0: https://ftp.gnu.org/gnu/sed/%{name}-%{version}.tar.xz Source1: https://ftp.gnu.org/gnu/sed/%{name}-%{version}.tar.xz.sig Source2: %{name}.keyring -# PATCH-FIX-SLE sed-dont_close_twice.patch bnc@880817 tcech@suse.cz -- 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} -Requires(preun): %{install_info_prereq} Provides: base:/bin/sed %description @@ -44,9 +39,7 @@ occurrences of a string within a file. %lang_package %prep -%setup -q -%patch0 -p1 -%patch1 +%autosetup -p1 %build %define warn_flags -Wall -Wstrict-prototypes -Wpointer-arith -Wformat-security @@ -54,15 +47,7 @@ export CFLAGS="%{optflags} %{warn_flags} -fPIE" export LDFLAGS="-pie" %configure \ --without-included-regex -%if 0%{?do_profiling} - make %{?_smp_mflags} CFLAGS="$CFLAGS %{cflags_profile_generate}" V=1 - make %{?_smp_mflags} CFLAGS="$CFLAGS %{cflags_profile_generate}" check - make %{?_smp_mflags} clean - make %{?_smp_mflags} CFLAGS="$CFLAGS %{cflags_profile_feedback}" V=1 -%else - make %{?_smp_mflags} V=1 -%endif -make %{?_smp_mflags} check +%make_build %install %make_install @@ -73,14 +58,7 @@ ln -s %{_bindir}/sed %{buildroot}/bin/sed %find_lang %{name} %check -# run check once more with final binaries -make %{?_smp_mflags} check - -%post -%install_info --info-dir=%{_infodir} %{_infodir}/%{name}.info%{ext_info} - -%preun -%install_info_delete --info-dir=%{_infodir} %{_infodir}/%{name}.info%{ext_info} +%make_build check %files %license COPYING* @@ -93,5 +71,6 @@ make %{?_smp_mflags} check %{_infodir}/sed.info*%{ext_info} %files lang -f %{name}.lang +%license COPYING* %changelog