sort - fix buffer overflow in some case conversions
- patch by Pádraig Brady
This commit is contained in:
		
							parent
							
								
									0ea2ae6357
								
							
						
					
					
						commit
						7adccbb026
					
				| @ -3245,8 +3245,8 @@ diff -urNp coreutils-8.23-orig/src/sort.c coreutils-8.23/src/sort.c | ||||
| +
 | ||||
| +      if (ignore || translate)
 | ||||
| +        {
 | ||||
| +          char *copy_a = (char *) xmalloc (lena + 1 + lenb + 1);
 | ||||
| +          char *copy_b = copy_a + lena + 1;
 | ||||
| +          char *copy_a = (char *) xmalloc ((lena + lenb) * MB_CUR_MAX + 2);
 | ||||
| +          char *copy_b = copy_a + lena * MB_CUR_MAX + 1;
 | ||||
| +          size_t new_len_a, new_len_b;
 | ||||
| +          size_t i, j;
 | ||||
| +
 | ||||
| @ -3452,6 +3452,39 @@ diff -urNp coreutils-8.23-orig/src/sort.c coreutils-8.23/src/sort.c | ||||
|            } | ||||
|            break; | ||||
|   | ||||
| diff -urNp coreutils-8.23-orig/tests/i18n/sort.sh coreutils-8.23/tests/i18n/sort.sh
 | ||||
| --- coreutils-8.23-orig/tests/i18n/sort.sh	1970-01-01 01:00:00.000000000 +0100
 | ||||
| +++ coreutils-8.23/tests/i18n/sort.sh	2014-07-22 13:45:52.733652016 +0200
 | ||||
| @@ -0,0 +1,29 @@
 | ||||
| +#!/bin/sh
 | ||||
| +# Verify sort's multi-byte support.
 | ||||
| +
 | ||||
| +. "${srcdir=.}/tests/init.sh"; path_prepend_ ./src
 | ||||
| +print_ver_ sort
 | ||||
| +
 | ||||
| +export LC_ALL=en_US.UTF-8
 | ||||
| +locale -k LC_CTYPE | grep -q "charmap.*UTF-8" \
 | ||||
| +  || skip_ "No UTF-8 locale available"
 | ||||
| +
 | ||||
| +# Enable heap consistency checkng on older systems
 | ||||
| +export MALLOC_CHECK_=2
 | ||||
| +
 | ||||
| +
 | ||||
| +# check buffer overflow issue due to
 | ||||
| +# expanding multi-byte representation due to case conversion
 | ||||
| +# https://bugzilla.suse.com/show_bug.cgi?id=928749
 | ||||
| +cat <<EOF > exp
 | ||||
| +.
 | ||||
| +ɑ
 | ||||
| +EOF
 | ||||
| +cat <<EOF | sort -f > out || fail=1
 | ||||
| +.
 | ||||
| +ɑ
 | ||||
| +EOF
 | ||||
| +compare exp out || { fail=1; cat out; }
 | ||||
| +
 | ||||
| +
 | ||||
| +Exit $fail
 | ||||
| diff -urNp coreutils-8.23-orig/src/unexpand.c coreutils-8.23/src/unexpand.c
 | ||||
| --- coreutils-8.23-orig/src/unexpand.c	2014-07-11 13:00:07.000000000 +0200
 | ||||
| +++ coreutils-8.23/src/unexpand.c	2014-07-22 13:45:52.721651968 +0200
 | ||||
| @ -4099,11 +4132,12 @@ diff -urNp coreutils-8.23-orig/src/uniq.c coreutils-8.23/src/uniq.c | ||||
| diff -urNp coreutils-8.23-orig/tests/local.mk coreutils-8.23/tests/local.mk
 | ||||
| --- coreutils-8.23-orig/tests/local.mk	2014-07-22 13:45:10.494422571 +0200
 | ||||
| +++ coreutils-8.23/tests/local.mk	2014-07-22 13:45:52.726651988 +0200
 | ||||
| @@ -331,6 +331,7 @@ all_tests =					\
 | ||||
| @@ -331,6 +331,8 @@ all_tests =					\
 | ||||
|    tests/misc/sort-discrim.sh			\ | ||||
|    tests/misc/sort-files0-from.pl		\ | ||||
|    tests/misc/sort-float.sh			\ | ||||
| +  tests/misc/sort-mb-tests.sh			\
 | ||||
| +  tests/i18n/sort.sh				\
 | ||||
|    tests/misc/sort-merge.pl			\ | ||||
|    tests/misc/sort-merge-fdlimit.sh		\ | ||||
|    tests/misc/sort-month.sh			\ | ||||
|  | ||||
| @ -1,7 +1,7 @@ | ||||
| Summary: A set of basic GNU tools commonly used in shell scripts | ||||
| Name:    coreutils | ||||
| Version: 8.23 | ||||
| Release: 9%{?dist} | ||||
| Release: 10%{?dist} | ||||
| License: GPLv3+ | ||||
| Group:   System Environment/Base | ||||
| Url:     http://www.gnu.org/software/coreutils/ | ||||
| @ -373,6 +373,10 @@ fi | ||||
| %{_sbindir}/chroot | ||||
| 
 | ||||
| %changelog | ||||
| * Wed May 13 2015 Ondrej Oprala <ooprala@redhat.com - 8.23-10 | ||||
| - sort - fix buffer overflow in some case conversions | ||||
|   - patch by Pádraig Brady | ||||
| 
 | ||||
| * Mon Apr 20 2015 Pádraig Brady <pbrady@redhat.com> - 8.23-9 | ||||
| - Adjust LS_COLORS in 256 color mode; brighten some, remove hardlink colors (#1196642) | ||||
| 
 | ||||
|  | ||||
		Loading…
	
		Reference in New Issue
	
	Block a user