aboutsummaryrefslogtreecommitdiffstats
path: root/main
diff options
context:
space:
mode:
authorBartłomiej Piotrowski <bpiotrowski@alpinelinux.org>2014-03-15 14:34:53 +0100
committerBartłomiej Piotrowski <bpiotrowski@alpinelinux.org>2014-03-15 14:34:53 +0100
commitfa0e5b2896461621527bd633739dad55cb9383fb (patch)
tree47e8f3cd4d641252adabf5d0d70c158bd04d2980 /main
parent2881f763fe4e2161de47cb968ea67e5c6b3903cc (diff)
downloadaports-fa0e5b2896461621527bd633739dad55cb9383fb.tar.bz2
aports-fa0e5b2896461621527bd633739dad55cb9383fb.tar.xz
main/coreutils: fix segmentation fault in shuf
Diffstat (limited to 'main')
-rw-r--r--main/coreutils/APKBUILD16
-rw-r--r--main/coreutils/coreutils-8.22-shuf-segfault.patch74
2 files changed, 84 insertions, 6 deletions
diff --git a/main/coreutils/APKBUILD b/main/coreutils/APKBUILD
index 41ea3f4cb4..96d32b5b68 100644
--- a/main/coreutils/APKBUILD
+++ b/main/coreutils/APKBUILD
@@ -1,8 +1,8 @@
-# Contributor: Michael Mason <ms13sp@gmail.com>
+# Contributor: Michael Mason <ms13sp@gmail.com>
# Maintainer: Natanael Copa <ncopa@alpinelinux.org>
pkgname=coreutils
pkgver=8.22
-pkgrel=0
+pkgrel=1
pkgdesc="The basic file, shell and text manipulation utilities"
url="http://www.gnu.org/software/coreutils/"
arch="all"
@@ -12,7 +12,8 @@ makedepends="bash acl-dev perl"
install=
subpackages="$pkgname-doc"
install="$pkgname.post-deinstall"
-source="http://ftp.gnu.org/gnu/coreutils/$pkgname-$pkgver.tar.xz"
+source="http://ftp.gnu.org/gnu/coreutils/$pkgname-$pkgver.tar.xz
+ coreutils-8.22-shuf-segfault.patch"
_builddir="$srcdir"/$pkgname-$pkgver
build() {
@@ -50,6 +51,9 @@ package() {
mv chroot "$pkgdir"/usr/sbin/
}
-md5sums="8fb0ae2267aa6e728958adc38f8163a2 coreutils-8.22.tar.xz"
-sha256sums="5b3e94998152c017e6c75d56b9b994188eb71bf46d4038a642cb9141f6ff1212 coreutils-8.22.tar.xz"
-sha512sums="2f14c2cab7001297309b4774bf3d610ecbaaec7d98d68e3792b24d2b52d319c4e30e55f803e56c48b9b9a1b76eb1c9636be5444fe1dc1dbcdd6150cfcb34847f coreutils-8.22.tar.xz"
+md5sums="8fb0ae2267aa6e728958adc38f8163a2 coreutils-8.22.tar.xz
+94f7e6f373f37beb236caabed8fcdb52 coreutils-8.22-shuf-segfault.patch"
+sha256sums="5b3e94998152c017e6c75d56b9b994188eb71bf46d4038a642cb9141f6ff1212 coreutils-8.22.tar.xz
+3d9074964b3be7ccf2a384de4a48ef372db13fd77c2fc7316d5a94f3fdcae17e coreutils-8.22-shuf-segfault.patch"
+sha512sums="2f14c2cab7001297309b4774bf3d610ecbaaec7d98d68e3792b24d2b52d319c4e30e55f803e56c48b9b9a1b76eb1c9636be5444fe1dc1dbcdd6150cfcb34847f coreutils-8.22.tar.xz
+1e2ff3b4d32c3c833ee7b4fb29d7509bebfb3c8c5ea0c2bcfff48d221d03d3a6da47be6be5f723d792a26c66063a99293ab9a7b609726357bc45fb2a01bad844 coreutils-8.22-shuf-segfault.patch"
diff --git a/main/coreutils/coreutils-8.22-shuf-segfault.patch b/main/coreutils/coreutils-8.22-shuf-segfault.patch
new file mode 100644
index 0000000000..e22b3c7b20
--- /dev/null
+++ b/main/coreutils/coreutils-8.22-shuf-segfault.patch
@@ -0,0 +1,74 @@
+From 24eb395471176e24762b08bfcef7562911537504 Mon Sep 17 00:00:00 2001
+From: Paul Eggert <eggert@cs.ucla.edu>
+Date: Sun, 23 Feb 2014 15:34:48 -0800
+Subject: [PATCH] shuf: with -r, don't dump core if the input is empty
+
+Problem reported by valiant xiao in <http://bugs.gnu.org/16855>.
+* NEWS: Document this.
+* src/shuf.c (main): With -r, report an error if the input is empty.
+* tests/misc/shuf.sh: Test for the bug.
+---
+ NEWS | 3 +++
+ src/shuf.c | 15 +++++++++++----
+ tests/misc/shuf.sh | 4 ++++
+ 3 files changed, 18 insertions(+), 4 deletions(-)
+
+diff --git a/NEWS b/NEWS
+index e72942b..2df246d 100644
+--- a/NEWS
++++ b/NEWS
+@@ -22,6 +22,9 @@ GNU coreutils NEWS -*- outline -*-
+ it would display an error, requiring --no-dereference to avoid the issue.
+ [bug introduced in coreutils-5.3.0]
+
++ shuf -r no longer dumps core if the input is empty.
++ [bug introduced in coreutils-8.22]
++
+ ** New features
+
+ od accepts a new option: --endian=TYPE to handle inputs with different byte
+diff --git a/src/shuf.c b/src/shuf.c
+index d4641fe..2a91072 100644
+--- a/src/shuf.c
++++ b/src/shuf.c
+@@ -576,11 +576,18 @@ main (int argc, char **argv)
+ /* Generate output according to requested method */
+ if (repeat)
+ {
+- if (input_range)
+- i = write_random_numbers (randint_source, head_lines,
+- lo_input, hi_input, eolbyte);
++ if (head_lines == 0)
++ i = 0;
+ else
+- i = write_random_lines (randint_source, head_lines, line, n_lines);
++ {
++ if (n_lines == 0)
++ error (EXIT_FAILURE, 0, _("No lines to repeat"));
++ if (input_range)
++ i = write_random_numbers (randint_source, head_lines,
++ lo_input, hi_input, eolbyte);
++ else
++ i = write_random_lines (randint_source, head_lines, line, n_lines);
++ }
+ }
+ else
+ {
+diff --git a/tests/misc/shuf.sh b/tests/misc/shuf.sh
+index d3ea1f2..d7251d1 100755
+--- a/tests/misc/shuf.sh
++++ b/tests/misc/shuf.sh
+@@ -43,6 +43,10 @@ compare in out1 || { fail=1; echo "not a permutation" 1>&2; }
+ t=$(shuf -e a b c d e | sort | fmt)
+ test "$t" = 'a b c d e' || { fail=1; echo "not a permutation" 1>&2; }
+
++# coreutils-8.22 dumps core.
++shuf -er
++test $? -eq 1 || fail=1
++
+ # Before coreutils-6.3, this would infloop.
+ # "seq 1860" produces 8193 (8K + 1) bytes of output.
+ seq 1860 | shuf > /dev/null || fail=1
+--
+1.8.5.3
+