diff options
author | Zack Weinberg <zackw@panix.com> | 2020-09-05 18:12:48 -0700 |
---|---|---|
committer | Karl Berry <karl@freefriends.org> | 2020-09-05 18:12:48 -0700 |
commit | 74a413ff814a070dc9a5ca577ddd42099fad2605 (patch) | |
tree | f1b30718fb75c1ed6b143578b7904dce73ee50f2 | |
parent | f50685a5f5c04bd8ec2a9577e1a7b8d7cf8967cb (diff) | |
download | automake-74a413ff814a070dc9a5ca577ddd42099fad2605.tar.gz |
automake: be robust against directories containing ().
This change fixes https://bugs.gnu.org/14196.
* m4/missing.m4 (AM_MISSING_HAS_RUN): always quote the
invocation (not just if $am_aux_dir contains space or tab), in
case $am_aux_dir contains () or other metachars not rejected by
AM_SANITY_CHECK; quoting with '...' suggested by Jim Meyering.
* t/man6.sh (HELP2MAN): adjust grep since missing value
is quoted now.
* t/am-missing-prog.sh: likewise.
-rw-r--r-- | m4/missing.m4 | 7 | ||||
-rw-r--r-- | t/am-missing-prog.sh | 6 | ||||
-rw-r--r-- | t/man6.sh | 10 |
3 files changed, 10 insertions, 13 deletions
diff --git a/m4/missing.m4 b/m4/missing.m4 index 6f742fb20..14448bf18 100644 --- a/m4/missing.m4 +++ b/m4/missing.m4 @@ -21,12 +21,7 @@ AC_DEFUN([AM_MISSING_HAS_RUN], [AC_REQUIRE([AM_AUX_DIR_EXPAND])dnl AC_REQUIRE_AUX_FILE([missing])dnl if test x"${MISSING+set}" != xset; then - case $am_aux_dir in - *\ * | *\ *) - MISSING="\${SHELL} \"$am_aux_dir/missing\"" ;; - *) - MISSING="\${SHELL} $am_aux_dir/missing" ;; - esac + MISSING="\${SHELL} '$am_aux_dir/missing'" fi # Use eval to expand $SHELL if eval "$MISSING --is-lightweight"; then diff --git a/t/am-missing-prog.sh b/t/am-missing-prog.sh index df26b04fd..1a5cb7fa5 100644 --- a/t/am-missing-prog.sh +++ b/t/am-missing-prog.sh @@ -86,9 +86,9 @@ $AUTOMAKE $FGREP COMMAND Makefile.in Makefile # For debugging. -grep "^NO_SUCH_COMMAND = \${SHELL} .*/missing .*am-none-none" Makefile -grep "^MISMATCHED_COMMAND = \${SHELL} .*/missing .*am-exit-63" Makefile -grep "^COMMAND_FOUND = \${SHELL} .*/missing .*my-command" Makefile +grep "^NO_SUCH_COMMAND = \${SHELL} .*/missing.* .*am-none-none" Makefile +grep "^MISMATCHED_COMMAND = \${SHELL} .*/missing.* .*am-exit-63" Makefile +grep "^COMMAND_FOUND = \${SHELL} .*/missing.* .*my-command" Makefile grep '^OVERRIDDEN_COMMAND = am-overridden *$' Makefile $MAKE test1 test2 test3 test4 @@ -64,8 +64,10 @@ mkdir build cd build ../configure -# Sanity check. -grep '^HELP2MAN *=.*/missing help2man' Makefile +# Sanity check. The line we're matching looks like this: +# HELP2MAN = ${SHELL} '/am/checkout/t/man6.dir/missing' help2man +# so let's not try to match the exact intervening quote. +grep '^HELP2MAN *=.*/missing.* help2man' Makefile $MAKE $FGREP foobar ../foobar.1 @@ -83,8 +85,8 @@ cd .. rm -f *.1 # Remove leftover generated manpages. ./configure -# Sanity check. -grep '^HELP2MAN *=.*/missing help2man' Makefile +# Sanity check again, same as above. +grep '^HELP2MAN *=.*/missing.* help2man' Makefile $MAKE $FGREP foobar foobar.1 |