[LEDE-DEV] [patch master 01/15] Double quote to prevent globbing and word splitting

Jan-Tarek Butt tarek at ring0.de
Fri Sep 30 16:27:24 PDT 2016


Hi Lars,

On 09/30/16 23:50, Lars Kruse wrote:
> Hi Jan-Tarek,
> 
> first of all: I am very happy to see your patches!

Thanks :)

> Whenever I took a look at some shell scripts in openwrt, I felt the strong urge
> to change many of the things you went out to fix. But until now I was always
> stopped by the sheer amount of changes necessary. Thank you!

I just do some small stuff :) Butt I plan to continiure work on it.

> Am Fri, 30 Sep 2016 22:02:15 +0200
> schrieb Jan-Tarek Butt <tarek at ring0.de>:
> 
>> [..]
>> diff --git a/scripts/arm-magic.sh b/scripts/arm-magic.sh
>> index 29ec88a..61ba098 100755
>> --- a/scripts/arm-magic.sh
>> +++ b/scripts/arm-magic.sh
>> @@ -24,19 +24,19 @@
>>  # list of supported boards, in "boardname machtypeid" format
>>  for board in "avila 526" "gateway7001 731" "nslu2 597" "nas100d 865"
>> "wg302v1 889" "wg302v2 890" "pronghorn 928" "pronghornmetro 1040" "compex
>> 1273" "wrt300nv2 1077" "loft 849" "dsmg600 964" "fsg3 1091" "ap1000 1543"
>> "tw2662 1658" "tw5334 1664" "ixdpg425 604" "cambria 1468" "sidewinder 1041"
>> "ap42x 4418" do
>> -  set -- $board
>> -  hexid=$(printf %x\\n $2)
>> +  set -- "$board"
>> +  hexid=$(printf %x\\n "$2")
> 
> I think, exactly here the missing quotes were left out on purpose.
> The "set -- ..." line was supposed to assign the string pairs above (e.g.
> "avila 526" to $1 and $2. With your change both are squashed into $1 instead.
> I do not see a good way use quoting here, thus I would recommend to add a
> comment above explaining this (from my point of view: very exotic) "set"
> statement.

Ah right, this kind are very special. Hm yes we can sed a comment on top.

> 
>>    if [ "$2" -lt "256" ]; then
>>      # we have a low machtypeid, we just need a "mov" (e3a)
>> -    printf "\xe3\xa0\x10\x$hexid" > $BIN_DIR/$IMG_PREFIX-$1-zImage
>> +    printf "\xe3\xa0\x10\x$hexid" > "$BIN_DIR"/"$IMG_PREFIX"-"$1"-zImage
> 
> I would prefer the following:
>  "$BIN_DIR/$IMG_PREFIX-$1-zImage"
> over this:
>  "$BIN_DIR"/"$IMG_PREFIX"-"$1"-zImage
> But this is surely just a question of taste.

Thanks I'll fix it.

>> diff --git a/scripts/combined-ext-image.sh b/scripts/combined-ext-image.sh
>> index 374fe6e..b752aae 100755
>> --- a/scripts/combined-ext-image.sh
>> +++ b/scripts/combined-ext-image.sh
>> @@ -38,7 +38,7 @@ IMG_OUT=$1; shift
>>  FILE_NUM=$(($# / 2))
>>  FILES=""
>>  
>> -printf "CE%02x%-32s%02x" $CE_VERSION "$IMG_TYPE" $FILE_NUM > $IMG_OUT
>> +printf "CE%02x%-32s%02x" $CE_VERSION "$IMG_TYPE" $FILE_NUM > "$IMG_OUT"
> 
> Is there a reason for not adding quotes for CE_VERSION and FILE_NUM?

bacause there just nummeric.

>> -		for pattern in $(eval echo $spec); do
>> -			find $libdirs -name "$pattern.so*" | sort -u
>> +		for pattern in $(eval echo "$spec"); do
>> +			find "$libdirs" -name "$pattern.so*" | sort -u
> 
> Just out of curiosity: do you know, what could be the purpose of the "eval"
> construct above?

That command is to check the result of echo $spec

> I would assume that:
>  for pattern in $spec; do
> behaves exactly like:
>  for pattern in $(eval echo $spec); do

are you shure ?

> 
>> -				exec "$CC" $CFLAGS -dumpmachine
>> +				exec "$CC" "$CFLAGS" -dumpmachine
> 
> I think, that this change would squash all CFLAGS into a single parameter,
> which should fail, I guess.
> I cannot think of a way to add quotes here.

Oh my mistake you are right.

>> diff --git a/scripts/strip-kmod.sh b/scripts/strip-kmod.sh
>> index 313015b..ef35b82 100755
>> --- a/scripts/strip-kmod.sh
>> +++ b/scripts/strip-kmod.sh
>> @@ -22,7 +22,7 @@ if [ -z "$KEEP_BUILD_ID" ]; then
>>      ARGS="$ARGS -R .note.gnu.build-id"
>>  fi
>>  
>> -${CROSS}objcopy \
>> +"${CROSS}"objcopy \
>>  	-R .comment \
>>  	-R .pdr \
>>  	-R .mdebug.abi32 \
>> @@ -30,7 +30,7 @@ ${CROSS}objcopy \
>>  	-R .reginfo \
>>  	-R .MIPS.abiflags \
>>  	-R .note.GNU-stack \
>> -	$ARGS \
>> +	"$ARGS" \
> 
> Based on the name "ARGS" I could imagine, that this variable contains more than
> one argument. Thus the quotes would create a problem, I think.

Ah right I see the problem.
Thanks

Cheers
Tarek


-------------- next part --------------
A non-text attachment was scrubbed...
Name: signature.asc
Type: application/pgp-signature
Size: 801 bytes
Desc: OpenPGP digital signature
URL: <http://lists.infradead.org/pipermail/lede-dev/attachments/20161001/14e7a2f6/attachment-0001.sig>


More information about the Lede-dev mailing list