diff options
author | Peter Breitenlohner <peb@mppmu.mpg.de> | 2010-12-03 16:13:32 -0500 |
---|---|---|
committer | Matt Turner <mattst88@gmail.com> | 2011-03-01 23:23:36 -0500 |
commit | a29912840d4baccc6d3819e9a2b25ba9d5cb7f7e (patch) | |
tree | ad8c10b18ea7c0fabba0b47dca7dcac7dffc1493 | |
parent | fa623ff1e2f48336f09d38c50c598890e21fa1cc (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.cpp | 10 |
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 |