[v2] devtools: fix symbol check for filename with space

Message ID 20180718212658.24756-1-thomas@monjalon.net (mailing list archive)
State Accepted, archived
Delegated to: Thomas Monjalon
Headers
Series [v2] devtools: fix symbol check for filename with space |

Checks

Context Check Description
ci/checkpatch success coding style OK
ci/Intel-compilation success Compilation OK

Commit Message

Thomas Monjalon July 18, 2018, 9:26 p.m. UTC
  If the patch filename or the temporary file path have a space
in their name, the script check-symbol-change.sh does not work.
The variables for the filenames must be enclosed in quotes
in order to preserve spaces.

Fixes: 4bec48184e33 ("devtools: add checks for ABI symbol addition")
Cc: nhorman@tuxdriver.com

Signed-off-by: Thomas Monjalon <thomas@monjalon.net>
---
v2: one occurence of "$mapfile" was missed in v1
---
 devtools/check-symbol-change.sh | 20 ++++++++++----------
 1 file changed, 10 insertions(+), 10 deletions(-)
  

Comments

Neil Horman July 19, 2018, 11:14 a.m. UTC | #1
On Wed, Jul 18, 2018 at 11:26:58PM +0200, Thomas Monjalon wrote:
> If the patch filename or the temporary file path have a space
> in their name, the script check-symbol-change.sh does not work.
> The variables for the filenames must be enclosed in quotes
> in order to preserve spaces.
> 
> Fixes: 4bec48184e33 ("devtools: add checks for ABI symbol addition")
> Cc: nhorman@tuxdriver.com
> 
> Signed-off-by: Thomas Monjalon <thomas@monjalon.net>
> ---
> v2: one occurence of "$mapfile" was missed in v1
I don't have any issue with this change, but the only way I see to introduce a
space into the tempfile name is to set $TMPDIR to '/path/with silly spaces' or
something simmilar.  I think we discussed this before, but it would alsmot make
sense to, instead of quoting everything, instead specify -p ./ to ensure the
tempfile has no spaces.

Neil

> ---
>  devtools/check-symbol-change.sh | 20 ++++++++++----------
>  1 file changed, 10 insertions(+), 10 deletions(-)
> 
> diff --git a/devtools/check-symbol-change.sh b/devtools/check-symbol-change.sh
> index 9952a8d66..40b72073a 100755
> --- a/devtools/check-symbol-change.sh
> +++ b/devtools/check-symbol-change.sh
> @@ -7,7 +7,7 @@ build_map_changes()
>  	local fname=$1
>  	local mapdb=$2
>  
> -	cat $fname | awk '
> +	cat "$fname" | awk '
>  		# Initialize our variables
>  		BEGIN {map="";sym="";ar="";sec=""; in_sec=0; in_map=0}
>  
> @@ -71,10 +71,10 @@ build_map_changes()
>  					print map " " sym " unknown del"
>  				}
>  			}
> -		}' > ./$mapdb
> +		}' > "$mapdb"
>  
> -		sort -u $mapdb > ./$mapdb.2
> -		mv -f $mapdb.2 $mapdb
> +		sort -u "$mapdb" > "$mapdb.2"
> +		mv -f "$mapdb.2" "$mapdb"
>  
>  }
>  
> @@ -111,7 +111,7 @@ check_for_rule_violations()
>  				# to be moving from an already supported
>  				# section or its a violation
>  				grep -q \
> -				"$mname $symname [^EXPERIMENTAL] del" $mapdb
> +				"$mname $symname [^EXPERIMENTAL] del" "$mapdb"
>  				if [ $? -ne 0 ]
>  				then
>  					echo -n "ERROR: symbol $symname "
> @@ -133,7 +133,7 @@ check_for_rule_violations()
>  				echo "gone through the deprecation process"
>  			fi
>  		fi
> -	done < $mapdb
> +	done < "$mapdb"
>  
>  	return $ret
>  }
> @@ -146,14 +146,14 @@ exit_code=1
>  
>  clean_and_exit_on_sig()
>  {
> -	rm -f $mapfile
> +	rm -f "$mapfile"
>  	exit $exit_code
>  }
>  
> -build_map_changes $patch $mapfile
> -check_for_rule_violations $mapfile
> +build_map_changes "$patch" "$mapfile"
> +check_for_rule_violations "$mapfile"
>  exit_code=$?
>  
> -rm -f $mapfile
> +rm -f "$mapfile"
>  
>  exit $exit_code
> -- 
> 2.17.1
> 
>
  
Thomas Monjalon July 19, 2018, 12:09 p.m. UTC | #2
19/07/2018 13:14, Neil Horman:
> On Wed, Jul 18, 2018 at 11:26:58PM +0200, Thomas Monjalon wrote:
> > If the patch filename or the temporary file path have a space
> > in their name, the script check-symbol-change.sh does not work.
> > The variables for the filenames must be enclosed in quotes
> > in order to preserve spaces.
> > 
> > Fixes: 4bec48184e33 ("devtools: add checks for ABI symbol addition")
> > Cc: nhorman@tuxdriver.com
> > 
> > Signed-off-by: Thomas Monjalon <thomas@monjalon.net>
> > ---
> > v2: one occurence of "$mapfile" was missed in v1
> I don't have any issue with this change, but the only way I see to introduce a
> space into the tempfile name is to set $TMPDIR to '/path/with silly spaces' or
> something simmilar.  I think we discussed this before, but it would alsmot make
> sense to, instead of quoting everything, instead specify -p ./ to ensure the
> tempfile has no spaces.

When I save patches from my inbox, the filename has some spaces.

I think quoting variables is mandatory.
  
Neil Horman July 19, 2018, 3:37 p.m. UTC | #3
On Thu, Jul 19, 2018 at 02:09:47PM +0200, Thomas Monjalon wrote:
> 19/07/2018 13:14, Neil Horman:
> > On Wed, Jul 18, 2018 at 11:26:58PM +0200, Thomas Monjalon wrote:
> > > If the patch filename or the temporary file path have a space
> > > in their name, the script check-symbol-change.sh does not work.
> > > The variables for the filenames must be enclosed in quotes
> > > in order to preserve spaces.
> > > 
> > > Fixes: 4bec48184e33 ("devtools: add checks for ABI symbol addition")
> > > Cc: nhorman@tuxdriver.com
> > > 
> > > Signed-off-by: Thomas Monjalon <thomas@monjalon.net>
> > > ---
> > > v2: one occurence of "$mapfile" was missed in v1
> > I don't have any issue with this change, but the only way I see to introduce a
> > space into the tempfile name is to set $TMPDIR to '/path/with silly spaces' or
> > something simmilar.  I think we discussed this before, but it would alsmot make
> > sense to, instead of quoting everything, instead specify -p ./ to ensure the
> > tempfile has no spaces.
> 
> When I save patches from my inbox, the filename has some spaces.
> 
> I think quoting variables is mandatory.
> 
> 
> 
> 
Sure, it doesn't hurt anything really

Acked-by: Neil Horman <nhorman@tuxdriver.com>
  
Thomas Monjalon July 20, 2018, 9:37 a.m. UTC | #4
19/07/2018 17:37, Neil Horman:
> On Thu, Jul 19, 2018 at 02:09:47PM +0200, Thomas Monjalon wrote:
> > 19/07/2018 13:14, Neil Horman:
> > > On Wed, Jul 18, 2018 at 11:26:58PM +0200, Thomas Monjalon wrote:
> > > > If the patch filename or the temporary file path have a space
> > > > in their name, the script check-symbol-change.sh does not work.
> > > > The variables for the filenames must be enclosed in quotes
> > > > in order to preserve spaces.
> > > > 
> > > > Fixes: 4bec48184e33 ("devtools: add checks for ABI symbol addition")
> > > > Cc: nhorman@tuxdriver.com
> > > > 
> > > > Signed-off-by: Thomas Monjalon <thomas@monjalon.net>
> > > > ---
> > > > v2: one occurence of "$mapfile" was missed in v1
> > > I don't have any issue with this change, but the only way I see to introduce a
> > > space into the tempfile name is to set $TMPDIR to '/path/with silly spaces' or
> > > something simmilar.  I think we discussed this before, but it would alsmot make
> > > sense to, instead of quoting everything, instead specify -p ./ to ensure the
> > > tempfile has no spaces.
> > 
> > When I save patches from my inbox, the filename has some spaces.
> > 
> > I think quoting variables is mandatory.
> > 
> > 
> Sure, it doesn't hurt anything really
> 
> Acked-by: Neil Horman <nhorman@tuxdriver.com>

Applied
  

Patch

diff --git a/devtools/check-symbol-change.sh b/devtools/check-symbol-change.sh
index 9952a8d66..40b72073a 100755
--- a/devtools/check-symbol-change.sh
+++ b/devtools/check-symbol-change.sh
@@ -7,7 +7,7 @@  build_map_changes()
 	local fname=$1
 	local mapdb=$2
 
-	cat $fname | awk '
+	cat "$fname" | awk '
 		# Initialize our variables
 		BEGIN {map="";sym="";ar="";sec=""; in_sec=0; in_map=0}
 
@@ -71,10 +71,10 @@  build_map_changes()
 					print map " " sym " unknown del"
 				}
 			}
-		}' > ./$mapdb
+		}' > "$mapdb"
 
-		sort -u $mapdb > ./$mapdb.2
-		mv -f $mapdb.2 $mapdb
+		sort -u "$mapdb" > "$mapdb.2"
+		mv -f "$mapdb.2" "$mapdb"
 
 }
 
@@ -111,7 +111,7 @@  check_for_rule_violations()
 				# to be moving from an already supported
 				# section or its a violation
 				grep -q \
-				"$mname $symname [^EXPERIMENTAL] del" $mapdb
+				"$mname $symname [^EXPERIMENTAL] del" "$mapdb"
 				if [ $? -ne 0 ]
 				then
 					echo -n "ERROR: symbol $symname "
@@ -133,7 +133,7 @@  check_for_rule_violations()
 				echo "gone through the deprecation process"
 			fi
 		fi
-	done < $mapdb
+	done < "$mapdb"
 
 	return $ret
 }
@@ -146,14 +146,14 @@  exit_code=1
 
 clean_and_exit_on_sig()
 {
-	rm -f $mapfile
+	rm -f "$mapfile"
 	exit $exit_code
 }
 
-build_map_changes $patch $mapfile
-check_for_rule_violations $mapfile
+build_map_changes "$patch" "$mapfile"
+check_for_rule_violations "$mapfile"
 exit_code=$?
 
-rm -f $mapfile
+rm -f "$mapfile"
 
 exit $exit_code