summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorPeter Breitenlohner <peb@mppmu.mpg.de>2010-12-03 16:13:32 -0500
committerMatt Turner <mattst88@gmail.com>2011-03-01 23:23:36 -0500
commita29912840d4baccc6d3819e9a2b25ba9d5cb7f7e (patch)
treead8c10b18ea7c0fabba0b47dca7dcac7dffc1493
parentfa623ff1e2f48336f09d38c50c598890e21fa1cc (diff)
Fix gccmakedep from mutilates arguments containing "'" or " * "
Fixes https://bugs.freedesktop.org/show_bug.cgi?id=7414 Reviewed-by: Jesse Adkins <jesserayadkins@gmail.com> Signed-off-by: Matt Turner <mattst88@gmail.com>
-rw-r--r--gccmdep.cpp10
1 files changed, 7 insertions, 3 deletions
diff --git a/gccmdep.cpp b/gccmdep.cpp
index ff4b12a..abab70d 100644
--- a/gccmdep.cpp
+++ b/gccmdep.cpp
@@ -32,7 +32,9 @@ while [ $# != 0 ]; do
else
case "$1" in
-D*|-I*|-U*)
- args="$args '$1'"
+XCOMM arg may contain single quotes
+ qarg=`echo "$1" | sed "s/'/'\\\\\\\\''/g"`
+ args="$args '$qarg'"
;;
-g*|-O*)
;;
@@ -74,7 +76,8 @@ XCOMM ignore these flags
echo "Unknown option '$1' ignored" 1>&2
;;
*)
- files="$files $1"
+XCOMM filename may contain blanks
+ files="$files '$1'"
;;
esac
fi
@@ -115,7 +118,8 @@ CMD="$CC -M $args $files"
if [ X"$makefile" != X- ]; then
CMD="$CMD >> $TMP"
fi
-eval $CMD
+XCOMM Do not wildcard expand '*' in args
+eval "$CMD"
if [ X"$makefile" != X- ]; then
$RM ${makefile}.bak
$MV $makefile ${makefile}.bak