bug-coreutils
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

bug#8230: touch dumps core on solaris 10


From: Jim Meyering
Subject: bug#8230: touch dumps core on solaris 10
Date: Sun, 13 Mar 2011 10:11:33 +0100

Ben Walton wrote:
> Thanks for saving me the legwork on this.  The patch does correct the
> problem.  I appreciate the quick turnaround on this.

Thanks to both of you.
I've just updated coreutils to use the latest from gnulib,
so this will be fixed in coreutils-8.11.

However, contrary to most NEWS-worthy bugs, I have not tried
to determine when this one was introduced.  From the initial report,
I'm assuming it was introduced in coreutils-8.8, and wrote that in NEWS.

Ben, can you confirm that touch from coreutils-8.7 did not have this problem?
I'll wait for confirmation before pushing.


>From d8ed00cb61fede223b1450e53b7d6c21edff4b43 Mon Sep 17 00:00:00 2001
From: Jim Meyering <address@hidden>
Date: Sun, 13 Mar 2011 09:56:53 +0100
Subject: [PATCH] touch: update to latest gnulib to fix Solaris 10 touch segfault

* gnulib: Update to latest, to address http://debbugs.gnu.org/8230.
When built on Solaris 9 and run on Solaris 10, touch would segfault.
Reported by Ben Walton.
* bootstrap: Resync from gnulib.
* tests/init.sh: Likewise.
* NEWS (Bug fixes): Mention this.
---
 NEWS          |    3 +++
 THANKS.in     |    1 +
 bootstrap     |    6 +++---
 gnulib        |    2 +-
 tests/init.sh |   34 +++++++++++++++++-----------------
 5 files changed, 25 insertions(+), 21 deletions(-)

diff --git a/NEWS b/NEWS
index 5770410..9ceaa06 100644
--- a/NEWS
+++ b/NEWS
@@ -14,6 +14,9 @@ GNU coreutils NEWS                                    -*- 
outline -*-
   sort no longer spawns 7 worker threads to sort 16 lines
   [bug introduced in coreutils-8.6]

+  touch built on Solaris 9 would segfault when run on Solaris 10
+  [bug introduced in coreutils-8.8]
+
   wc would dereference a NULL pointer upon an early out-of-memory error
   [bug introduced in coreutils-7.1]

diff --git a/THANKS.in b/THANKS.in
index fe53c44..fbc4153 100644
--- a/THANKS.in
+++ b/THANKS.in
@@ -71,6 +71,7 @@ Barry Kelly                         
http://barrkel.blogspot.com/
 Bauke Jan Douma                     address@hidden
 Ben Elliston                        address@hidden
 Ben Harris                          address@hidden
+Ben Walton                          address@hidden
 Bengt Martensson                    address@hidden
 Benjamin Cutler                     address@hidden
 Bernard Giroud                      address@hidden
diff --git a/bootstrap b/bootstrap
index e9ec11e..f004ad3 100755
--- a/bootstrap
+++ b/bootstrap
@@ -1,6 +1,6 @@
 #! /bin/sh
 # Print a version string.
-scriptversion=2011-01-21.16; # UTC
+scriptversion=2011-03-03.12; # UTC

 # Bootstrap this package from checked-out sources.

@@ -874,7 +874,7 @@ grep -E '^[  ]*AC_CONFIG_HEADERS?\>' configure.ac 
>/dev/null ||

 for command in \
   libtool \
-  "${ACLOCAL-aclocal} --force -I m4 $ACLOCAL_FLAGS" \
+  "${ACLOCAL-aclocal} --force -I '$m4_base' $ACLOCAL_FLAGS" \
   "${AUTOCONF-autoconf} --force" \
   "${AUTOHEADER-autoheader} --force" \
   "${AUTOMAKE-automake} --add-missing --copy --force-missing"
@@ -885,7 +885,7 @@ do
     command="${LIBTOOLIZE-libtoolize} -c -f"
   fi
   echo "$0: $command ..."
-  $command || exit
+  eval "$command" || exit
 done


diff --git a/gnulib b/gnulib
index 6f0680e..68d757e 160000
--- a/gnulib
+++ b/gnulib
@@ -1 +1 @@
-Subproject commit 6f0680eb29a1737d704a1df26aafc00490cd34d8
+Subproject commit 68d757e2cb228590d46961cbf3e9ec7d4460e335
diff --git a/tests/init.sh b/tests/init.sh
index 44be35b..71c6516 100644
--- a/tests/init.sh
+++ b/tests/init.sh
@@ -74,10 +74,10 @@ Exit () { set +e; (exit $1); exit $1; }
 # the reason for skip/failure to console, rather than to the .log files.
 : ${stderr_fileno_=2}

-warn_() { echo "$@" 1>&$stderr_fileno_; }
-fail_() { warn_ "$ME_: failed test: $@"; Exit 1; }
-skip_() { warn_ "$ME_: skipped test: $@"; Exit 77; }
-framework_failure_() { warn_ "$ME_: set-up failure: $@"; Exit 99; }
+warn_ () { echo "$@" 1>&$stderr_fileno_; }
+fail_ () { warn_ "$ME_: failed test: $@"; Exit 1; }
+skip_ () { warn_ "$ME_: skipped test: $@"; Exit 77; }
+framework_failure_ () { warn_ "$ME_: set-up failure: $@"; Exit 99; }

 # Sanitize this shell to POSIX mode, if possible.
 DUALCASE=1; export DUALCASE
@@ -193,7 +193,7 @@ fi
 test -n "$EXEEXT" && shopt -s expand_aliases

 # Enable glibc's malloc-perturbing option.
-# This is cheap and useful for exposing code that depends on the fact that
+# This is useful for exposing code that depends on the fact that
 # malloc-related functions often return memory that is mostly zeroed.
 # If you have the time and cycles, use valgrind to do an even better job.
 : ${MALLOC_PERTURB_=87}
@@ -202,22 +202,22 @@ export MALLOC_PERTURB_
 # This is a stub function that is run upon trap (upon regular exit and
 # interrupt).  Override it with a per-test function, e.g., to unmount
 # a partition, or to undo any other global state changes.
-cleanup_() { :; }
+cleanup_ () { :; }

 if ( diff --version < /dev/null 2>&1 | grep GNU ) > /dev/null 2>&1; then
-  compare() { diff -u "$@"; }
+  compare () { diff -u "$@"; }
 elif ( cmp --version < /dev/null 2>&1 | grep GNU ) > /dev/null 2>&1; then
-  compare() { cmp -s "$@"; }
+  compare () { cmp -s "$@"; }
 else
-  compare() { cmp "$@"; }
+  compare () { cmp "$@"; }
 fi

 # An arbitrary prefix to help distinguish test directories.
-testdir_prefix_() { printf gt; }
+testdir_prefix_ () { printf gt; }

 # Run the user-overridable cleanup_ function, remove the temporary
 # directory and exit with the incoming value of $?.
-remove_tmp_()
+remove_tmp_ ()
 {
   __st=$?
   cleanup_
@@ -233,7 +233,7 @@ remove_tmp_()
 # contains only the specified bytes (see the case stmt below), then print
 # a space-separated list of those names and return 0.  Otherwise, don't
 # print anything and return 1.  Naming constraints apply also to DIR.
-find_exe_basenames_()
+find_exe_basenames_ ()
 {
   feb_dir_=$1
   feb_fail_=0
@@ -266,7 +266,7 @@ find_exe_basenames_()
 # PROG that simply invokes PROG.exe, then return 0.  If any selected
 # file name or the directory name, $1, contains an unexpected character,
 # define no alias and return 1.
-create_exe_shims_()
+create_exe_shims_ ()
 {
   case $EXEEXT in
     '') return 0 ;;
@@ -288,7 +288,7 @@ create_exe_shims_()

 # Use this function to prepend to PATH an absolute name for each
 # specified, possibly-$initial_cwd_-relative, directory.
-path_prepend_()
+path_prepend_ ()
 {
   while test $# != 0; do
     path_dir_=$1
@@ -311,7 +311,7 @@ path_prepend_()
   export PATH
 }

-setup_()
+setup_ ()
 {
   if test "$VERBOSE" = yes; then
     # Test whether set -x may cause the selected shell to corrupt an
@@ -364,7 +364,7 @@ setup_()
 #  - make only $MAX_TRIES_ attempts

 # Helper function.  Print $N pseudo-random bytes from a-zA-Z0-9.
-rand_bytes_()
+rand_bytes_ ()
 {
   n_=$1

@@ -396,7 +396,7 @@ rand_bytes_()
     | LC_ALL=C tr -c $chars_ 01234567$chars_$chars_$chars_
 }

-mktempd_()
+mktempd_ ()
 {
   case $# in
   2);;
--
1.7.4.1.299.ga459d





reply via email to

[Prev in Thread] Current Thread [Next in Thread]