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 <Ralf.Wildenhues@gmx.de>
This commit is contained in:
Ralf Wildenhues 2008-08-21 21:07:16 +02:00
parent 649567ed49
commit 739b7e4349
4 changed files with 26 additions and 1 deletions

View File

@ -1,3 +1,12 @@
2008-08-21 Ralf Wildenhues <Ralf.Wildenhues@gmx.de>
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 <Ralf.Wildenhues@gmx.de> 2008-08-16 Ralf Wildenhues <Ralf.Wildenhues@gmx.de>
Avoid test failure due to broken dlpreloading of shared library. Avoid test failure due to broken dlpreloading of shared library.

1
THANKS
View File

@ -111,6 +111,7 @@
Michael Haubenwallner michael.haubenwallner@salomon.at Michael Haubenwallner michael.haubenwallner@salomon.at
Mike Frysinger vapier@gentoo.org Mike Frysinger vapier@gentoo.org
Nix nix@esperi.org.uk Nix nix@esperi.org.uk
Olaf Lenz olenz@fias.uni-frankfurt.de
Olly Betts olly@muscat.co.uk Olly Betts olly@muscat.co.uk
Patrick Welche prlw1@newn.cam.ac.uk Patrick Welche prlw1@newn.cam.ac.uk
Paul Eggert eggert@twinsun.com Paul Eggert eggert@twinsun.com

View File

@ -4035,6 +4035,13 @@ func_mode_link ()
-L*) -L*)
func_stripname '-L' '' "$arg" func_stripname '-L' '' "$arg"
dir=$func_stripname_result 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. # We need an absolute path.
case $dir in case $dir in
[\\/]* | [A-Za-z]:[\\/]*) ;; [\\/]* | [A-Za-z]:[\\/]*) ;;

View File

@ -1,6 +1,6 @@
# fail.at -- test that libtool really fail when it should -*- Autotest -*- # 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 # Written by Ralf Wildenhues, 2005
# #
# This file is part of GNU Libtool. # This file is part of GNU Libtool.
@ -92,5 +92,13 @@ case $build_libtool_libs in yes)
;; ;;
esac 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]) m4_popdef([FAIL_CHECK])
AT_CLEANUP AT_CLEANUP