From: Ralf Wildenhues Date: Thu, 21 Aug 2008 19:07:16 +0000 (+0200) Subject: Disallow `-L path', do not misparse it silently. X-Git-Tag: v2.2.6~13 X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=739b7e434992c9c6a8412c17202ee8f539cbe2fc;p=thirdparty%2Flibtool.git Disallow `-L path', do not misparse it silently. * libltdl/config/ltmain.m4sh (func_mode_link): Diagnose `-L' without argument, and `-L path', i.e., with a space. * tests/fail.at (Failure tests): Test for these failures. * THANKS: Update. Report by Olaf Lenz. Signed-off-by: Ralf Wildenhues --- diff --git a/ChangeLog b/ChangeLog index fa0448200..a97279d51 100644 --- a/ChangeLog +++ b/ChangeLog @@ -1,3 +1,12 @@ +2008-08-21 Ralf Wildenhues + + Disallow `-L path', do not misparse it silently. + * libltdl/config/ltmain.m4sh (func_mode_link): Diagnose `-L' + without argument, and `-L path', i.e., with a space. + * tests/fail.at (Failure tests): Test for these failures. + * THANKS: Update. + Report by Olaf Lenz. + 2008-08-16 Ralf Wildenhues Avoid test failure due to broken dlpreloading of shared library. diff --git a/THANKS b/THANKS index 6d00c88db..f284d4e28 100644 --- a/THANKS +++ b/THANKS @@ -111,6 +111,7 @@ Michael Haubenwallner michael.haubenwallner@salomon.at Mike Frysinger vapier@gentoo.org Nix nix@esperi.org.uk + Olaf Lenz olenz@fias.uni-frankfurt.de Olly Betts olly@muscat.co.uk Patrick Welche prlw1@newn.cam.ac.uk Paul Eggert eggert@twinsun.com diff --git a/libltdl/config/ltmain.m4sh b/libltdl/config/ltmain.m4sh index 31ed2c743..d1c984ccd 100644 --- a/libltdl/config/ltmain.m4sh +++ b/libltdl/config/ltmain.m4sh @@ -4035,6 +4035,13 @@ func_mode_link () -L*) func_stripname '-L' '' "$arg" dir=$func_stripname_result + if test -z "$dir"; then + if test $# -gt 0; then + func_fatal_error "require no space between \`-L' and \`$1'" + else + func_fatal_error "need path for \`-L' option" + fi + fi # We need an absolute path. case $dir in [\\/]* | [A-Za-z]:[\\/]*) ;; diff --git a/tests/fail.at b/tests/fail.at index b12a15271..fe38ddcd0 100644 --- a/tests/fail.at +++ b/tests/fail.at @@ -1,6 +1,6 @@ # fail.at -- test that libtool really fail when it should -*- Autotest -*- # -# Copyright (C) 2005 Free Software Foundation, Inc. +# Copyright (C) 2005, 2008 Free Software Foundation, Inc. # Written by Ralf Wildenhues, 2005 # # This file is part of GNU Libtool. @@ -92,5 +92,13 @@ case $build_libtool_libs in yes) ;; esac +# Ensure we diagnose '-L path'. +echo 'int main () { return 0; }' > d.c +echo 'int foo () { return 0; }' > space-after-L.c +$CC $CPPFLAGS $CFLAGS -c d.c +$CC $CPPFLAGS $CFLAGS -c space-after-L.c +FAIL_CHECK([$LIBTOOL --mode=link $CC $CFLAGS $LDFLAGS -L space-after-L.$OBJEXT -o d d.$OBJEXT]) +FAIL_CHECK([$LIBTOOL --mode=link $CC $CFLAGS $LDFLAGS -o d d.$OBJEXT -L]) + m4_popdef([FAIL_CHECK]) AT_CLEANUP