forked from pool/coreutils
Accepting request 334151 from Base:System
Automatic submission by obs-autosubmit OBS-URL: https://build.opensuse.org/request/show/334151 OBS-URL: https://build.opensuse.org/package/show/openSUSE:Factory/coreutils?expand=0&rev=116
This commit is contained in:
parent
157dcc1a5e
commit
e4697fb591
@ -7,8 +7,9 @@
|
|||||||
src/sort.c | 763 +++++++++++++++++++++++++++++++++++++++++---
|
src/sort.c | 763 +++++++++++++++++++++++++++++++++++++++++---
|
||||||
src/unexpand.c | 228 +++++++++++++
|
src/unexpand.c | 228 +++++++++++++
|
||||||
src/uniq.c | 265 ++++++++++++++-
|
src/uniq.c | 265 ++++++++++++++-
|
||||||
|
tests/i18n/sort-month.sh | 34 +
|
||||||
tests/i18n/sort.sh | 29 +
|
tests/i18n/sort.sh | 29 +
|
||||||
tests/local.mk | 2
|
tests/local.mk | 3
|
||||||
tests/misc/cut.pl | 7
|
tests/misc/cut.pl | 7
|
||||||
tests/misc/expand.pl | 40 ++
|
tests/misc/expand.pl | 40 ++
|
||||||
tests/misc/fold.pl | 50 ++
|
tests/misc/fold.pl | 50 ++
|
||||||
@ -19,7 +20,7 @@
|
|||||||
tests/misc/unexpand.pl | 39 ++
|
tests/misc/unexpand.pl | 39 ++
|
||||||
tests/misc/uniq.pl | 55 +++
|
tests/misc/uniq.pl | 55 +++
|
||||||
tests/pr/pr-tests.pl | 49 ++
|
tests/pr/pr-tests.pl | 49 ++
|
||||||
21 files changed, 3255 insertions(+), 180 deletions(-)
|
22 files changed, 3290 insertions(+), 180 deletions(-)
|
||||||
|
|
||||||
Index: lib/linebuffer.h
|
Index: lib/linebuffer.h
|
||||||
===================================================================
|
===================================================================
|
||||||
@ -3076,8 +3077,8 @@ Index: src/sort.c
|
|||||||
+ register int lo = 0, hi = MONTHS_PER_YEAR, result;
|
+ register int lo = 0, hi = MONTHS_PER_YEAR, result;
|
||||||
+ char *tmp;
|
+ char *tmp;
|
||||||
+ size_t wclength, mblength;
|
+ size_t wclength, mblength;
|
||||||
+ const char **pp;
|
+ const char *pp;
|
||||||
+ const wchar_t **wpp;
|
+ const wchar_t *wpp;
|
||||||
+ wchar_t *month_wcs;
|
+ wchar_t *month_wcs;
|
||||||
+ mbstate_t state;
|
+ mbstate_t state;
|
||||||
+
|
+
|
||||||
@ -3090,17 +3091,19 @@ Index: src/sort.c
|
|||||||
+ if (len == 0)
|
+ if (len == 0)
|
||||||
+ return 0;
|
+ return 0;
|
||||||
+
|
+
|
||||||
+ month = (char *) xmalloc (len + 1);
|
+ if (SIZE_MAX - len < 1)
|
||||||
|
+ xalloc_die ();
|
||||||
+
|
+
|
||||||
+ tmp = (char *) xmalloc (len + 1);
|
+ month = (char *) xnmalloc (len + 1, MB_CUR_MAX);
|
||||||
|
+
|
||||||
|
+ pp = tmp = (char *) xnmalloc (len + 1, MB_CUR_MAX);
|
||||||
+ memcpy (tmp, s, len);
|
+ memcpy (tmp, s, len);
|
||||||
+ tmp[len] = '\0';
|
+ tmp[len] = '\0';
|
||||||
+ pp = (const char **)&tmp;
|
+ wpp = month_wcs = (wchar_t *) xnmalloc (len + 1, sizeof (wchar_t));
|
||||||
+ month_wcs = (wchar_t *) xmalloc ((len + 1) * sizeof (wchar_t));
|
+ memset (&state, '\0', sizeof (mbstate_t));
|
||||||
+ memset (&state, '\0', sizeof(mbstate_t));
|
|
||||||
+
|
+
|
||||||
+ wclength = mbsrtowcs (month_wcs, pp, len + 1, &state);
|
+ wclength = mbsrtowcs (month_wcs, &pp, len + 1, &state);
|
||||||
+ if (wclength == (size_t)-1 || *pp != NULL)
|
+ if (wclength == (size_t)-1 || pp != NULL)
|
||||||
+ error (SORT_FAILURE, 0, _("Invalid multibyte input %s."), quote(s));
|
+ error (SORT_FAILURE, 0, _("Invalid multibyte input %s."), quote(s));
|
||||||
+
|
+
|
||||||
+ for (i = 0; i < wclength; i++)
|
+ for (i = 0; i < wclength; i++)
|
||||||
@ -3113,10 +3116,8 @@ Index: src/sort.c
|
|||||||
+ }
|
+ }
|
||||||
+ }
|
+ }
|
||||||
+
|
+
|
||||||
+ wpp = (const wchar_t **)&month_wcs;
|
+ mblength = wcsrtombs (month, &wpp, (len + 1) * MB_CUR_MAX, &state);
|
||||||
+
|
+ assert (mblength != (-1) && wpp == NULL);
|
||||||
+ mblength = wcsrtombs (month, wpp, len + 1, &state);
|
|
||||||
+ assert (mblength != (-1) && *wpp == NULL);
|
|
||||||
+
|
+
|
||||||
+ do
|
+ do
|
||||||
+ {
|
+ {
|
||||||
@ -4167,12 +4168,13 @@ Index: tests/local.mk
|
|||||||
===================================================================
|
===================================================================
|
||||||
--- tests/local.mk.orig
|
--- tests/local.mk.orig
|
||||||
+++ tests/local.mk
|
+++ tests/local.mk
|
||||||
@@ -341,6 +341,8 @@ all_tests = \
|
@@ -341,6 +341,9 @@ all_tests = \
|
||||||
tests/misc/sort-discrim.sh \
|
tests/misc/sort-discrim.sh \
|
||||||
tests/misc/sort-files0-from.pl \
|
tests/misc/sort-files0-from.pl \
|
||||||
tests/misc/sort-float.sh \
|
tests/misc/sort-float.sh \
|
||||||
+ tests/misc/sort-mb-tests.sh \
|
+ tests/misc/sort-mb-tests.sh \
|
||||||
+ tests/i18n/sort.sh \
|
+ tests/i18n/sort.sh \
|
||||||
|
+ tests/i18n/sort-month.sh \
|
||||||
tests/misc/sort-merge.pl \
|
tests/misc/sort-merge.pl \
|
||||||
tests/misc/sort-merge-fdlimit.sh \
|
tests/misc/sort-merge-fdlimit.sh \
|
||||||
tests/misc/sort-month.sh \
|
tests/misc/sort-month.sh \
|
||||||
@ -4783,3 +4785,42 @@ Index: tests/pr/pr-tests.pl
|
|||||||
my $save_temps = $ENV{DEBUG};
|
my $save_temps = $ENV{DEBUG};
|
||||||
my $verbose = $ENV{VERBOSE};
|
my $verbose = $ENV{VERBOSE};
|
||||||
|
|
||||||
|
Index: tests/i18n/sort-month.sh
|
||||||
|
===================================================================
|
||||||
|
--- /dev/null
|
||||||
|
+++ tests/i18n/sort-month.sh
|
||||||
|
@@ -0,0 +1,34 @@
|
||||||
|
+#!/bin/sh
|
||||||
|
+# Verify sort -M multi-byte support.
|
||||||
|
+
|
||||||
|
+. "${srcdir=.}/tests/init.sh"; path_prepend_ ./src
|
||||||
|
+print_ver_ sort
|
||||||
|
+require_valgrind_
|
||||||
|
+
|
||||||
|
+# Skip this test if some deallocations are
|
||||||
|
+# avoided at process end.
|
||||||
|
+grep '^#define lint 1' $CONFIG_HEADER > /dev/null ||
|
||||||
|
+ skip_ 'Allocation checks only work reliably in "lint" mode'
|
||||||
|
+
|
||||||
|
+export LC_ALL=en_US.UTF-8
|
||||||
|
+locale -k LC_CTYPE | grep -q "charmap.*UTF-8" \
|
||||||
|
+ || skip_ "No UTF-8 locale available"
|
||||||
|
+
|
||||||
|
+# Note the use of ɑ here which expands to
|
||||||
|
+# a wider representation upon case conversion
|
||||||
|
+# which triggered an assertion in sort -M
|
||||||
|
+cat <<EOF > exp
|
||||||
|
+.
|
||||||
|
+ɑ
|
||||||
|
+EOF
|
||||||
|
+
|
||||||
|
+
|
||||||
|
+# check large mem leak with --month-sort
|
||||||
|
+# https://bugzilla.redhat.com/show_bug.cgi?id=1259942
|
||||||
|
+valgrind --leak-check=full \
|
||||||
|
+ --error-exitcode=1 --errors-for-leak-kinds=definite \
|
||||||
|
+ sort -M < exp > out || fail=1
|
||||||
|
+compare exp out || { fail=1; cat out; }
|
||||||
|
+
|
||||||
|
+
|
||||||
|
+Exit $fail
|
||||||
|
@ -14,9 +14,9 @@ or arm6l. Strip the tests down from 37 to 3.
|
|||||||
|
|
||||||
Index: tests/local.mk
|
Index: tests/local.mk
|
||||||
===================================================================
|
===================================================================
|
||||||
--- tests/local.mk.orig 2015-07-09 15:10:56.769806990 +0200
|
--- tests/local.mk.orig
|
||||||
+++ tests/local.mk 2015-07-09 15:10:56.839805334 +0200
|
+++ tests/local.mk
|
||||||
@@ -678,14 +678,9 @@ all_tests = \
|
@@ -679,14 +679,9 @@ all_tests = \
|
||||||
# See tests/factor/create-test.sh.
|
# See tests/factor/create-test.sh.
|
||||||
tf = tests/factor
|
tf = tests/factor
|
||||||
factor_tests = \
|
factor_tests = \
|
||||||
|
@ -1,3 +1,15 @@
|
|||||||
|
-------------------------------------------------------------------
|
||||||
|
Sun Sep 20 15:22:45 UTC 2015 - mail@bernhard-voelker.de
|
||||||
|
|
||||||
|
- coreutils-i18n.patch: Sync I18N patch from semi-official repository
|
||||||
|
(shared among distributions, maintained by Padraig Brady):
|
||||||
|
https://github.com/pixelb/coreutils/tree/i18n
|
||||||
|
This fixes the following issues in multi-byte locales:
|
||||||
|
* sort: fix large mem leak with --month-sort (boo#945361, rh#1259942):
|
||||||
|
https://github.com/pixelb/coreutils/commit/b429f5d8c7
|
||||||
|
* sort: fix assertion with some inputs to --month-sort
|
||||||
|
https://github.com/pixelb/coreutils/commit/31e8211aca
|
||||||
|
|
||||||
-------------------------------------------------------------------
|
-------------------------------------------------------------------
|
||||||
Sun Aug 30 21:52:13 UTC 2015 - mail@bernhard-voelker.de
|
Sun Aug 30 21:52:13 UTC 2015 - mail@bernhard-voelker.de
|
||||||
|
|
||||||
|
@ -1,3 +1,15 @@
|
|||||||
|
-------------------------------------------------------------------
|
||||||
|
Sun Sep 20 15:22:45 UTC 2015 - mail@bernhard-voelker.de
|
||||||
|
|
||||||
|
- coreutils-i18n.patch: Sync I18N patch from semi-official repository
|
||||||
|
(shared among distributions, maintained by Padraig Brady):
|
||||||
|
https://github.com/pixelb/coreutils/tree/i18n
|
||||||
|
This fixes the following issues in multi-byte locales:
|
||||||
|
* sort: fix large mem leak with --month-sort (boo#945361, rh#1259942):
|
||||||
|
https://github.com/pixelb/coreutils/commit/b429f5d8c7
|
||||||
|
* sort: fix assertion with some inputs to --month-sort
|
||||||
|
https://github.com/pixelb/coreutils/commit/31e8211aca
|
||||||
|
|
||||||
-------------------------------------------------------------------
|
-------------------------------------------------------------------
|
||||||
Sun Aug 30 21:52:13 UTC 2015 - mail@bernhard-voelker.de
|
Sun Aug 30 21:52:13 UTC 2015 - mail@bernhard-voelker.de
|
||||||
|
|
||||||
|
Loading…
Reference in New Issue
Block a user