[LEDE-DEV] [PATCH v2] ct-bugcheck: fix globbing, word splitting and formatting

John Crispin john at phrozen.org
Wed Oct 5 06:46:31 PDT 2016



On 05/10/2016 15:37, Jan-Tarek Butt wrote:
> Double quote to prevent globbing and word splitting.
> { cmd1; cmd2; } >> file instead of individual redirects.
> simplifying syntax
> 
> Signed-off-by: Jan-Tarek Butt <tarek at ring0.de>

Hi,

thanks for the fixes, did you runtime test this patch to make sure there
are no regressions caused ?

	John

> ---
>  package/utils/ct-bugcheck/src/bugcheck.sh | 177 ++++++++++++++----------------
>  1 file changed, 83 insertions(+), 94 deletions(-)
> 
> diff --git a/package/utils/ct-bugcheck/src/bugcheck.sh b/package/utils/ct-bugcheck/src/bugcheck.sh
> index 85f70c5..1737ed5 100755
> --- a/package/utils/ct-bugcheck/src/bugcheck.sh
> +++ b/package/utils/ct-bugcheck/src/bugcheck.sh
> @@ -9,107 +9,96 @@ FOUND_BUG=0
>  
>  # set -x
>  
> -bugcheck_generic()
> -{
> -    echo "LEDE crashlog report" > $CRASHDIR/info.txt
> -    date >> $CRASHDIR/info.txt
> -    echo >> $CRASHDIR/info.txt
> -    echo "uname" >> $CRASHDIR/info.txt
> -    uname -a >> $CRASHDIR/info.txt
> -    echo >> $CRASHDIR/info.txt
> -    echo "os-release" >> $CRASHDIR/info.txt
> -    cat /etc/os-release >> $CRASHDIR/info.txt
> -    echo >> $CRASHDIR/info.txt
> -    echo "os-release" >> $CRASHDIR/info.txt
> -    cat /etc/os-release >> $CRASHDIR/info.txt
> -    echo >> $CRASHDIR/info.txt
> -    echo "dmesg output" >> $CRASHDIR/info.txt
> -    dmesg >> $CRASHDIR/info.txt
> -    if [ -x /usr/bin/lspci ]
> -	then
> -	echo >> $CRASHDIR/info.txt
> -	echo "lspci" >> $CRASHDIR/info.txt
> -	lspci >> $CRASHDIR/info.txt
> -    fi
> -    echo >> $CRASHDIR/info.txt
> -    echo "cpuinfo" >> $CRASHDIR/info.txt
> -    cat /proc/cpuinfo >> $CRASHDIR/info.txt
> -    echo >> $CRASHDIR/info.txt
> -    echo "meminfo" >> $CRASHDIR/info.txt
> -    cat /proc/cpuinfo >> $CRASHDIR/info.txt
> -    echo >> $CRASHDIR/info.txt
> -    echo "cmdline" >> $CRASHDIR/info.txt
> -    cat /proc/cmdline >> $CRASHDIR/info.txt
> -    echo >> $CRASHDIR/info.txt
> -    echo "lsmod" >> $CRASHDIR/info.txt
> -    lsmod >> $CRASHDIR/info.txt
> +bugcheck_generic() {
> +	{
> +		echo "LEDE crashlog report"
> +		date
> +		echo
> +		echo "uname"
> +		uname -a
> +		echo
> +		echo "os-release"
> +		cat /etc/os-release
> +		echo
> +		echo "os-release"
> +		cat /etc/os-release
> +		echo
> +		echo "dmesg output"
> +		dmesg
> +	} > $CRASHDIR/info.txt
> +	[ -x /usr/bin/lspci ] && {
> +		echo
> +		echo "lspci"
> +		lspci
> +	} >> $CRASHDIR/info.txt
> +	{
> +		echo
> +		echo "cpuinfo"
> +		cat /proc/cpuinfo
> +		echo
> +		echo "meminfo"
> +		cat /proc/cpuinfo
> +		echo
> +		echo "cmdline"
> +		cat /proc/cmdline
> +		echo
> +		echo "lsmod"
> +		lsmod
> +	} >> $CRASHDIR/info.txt
>  }
>  
> -roll_crashes()
> -{
> -    # Roll any existing crashes
> -    if [ -d $CRASHDIR ]
> -	then
> -	if [ -d $CRASHDIR.1 ]
> -	    then
> -	    rm -fr $CRASHDIR.1
> -	fi
> -	mv $CRASHDIR $CRASHDIR.1
> -    fi
> +roll_crashes() {
> +	# Roll any existing crashes
> +	[ -d $CRASHDIR.1 ] && rm -fr $CRASHDIR.1
> +	[ -d $CRASHDIR ] && mv $CRASHDIR $CRASHDIR.1
>  
> -    # Prepare location
> -    mkdir -p $CRASHDIR
> +	# Prepare location
> +	mkdir -p $CRASHDIR
>  }
>  
>  # ath10k, check debugfs entries.
> -for i in /sys/kernel/debug/ieee80211/*/ath10k/fw_crash_dump
> -do
> -  #echo "Checking $i"
> -  if cat $i > $TMPLOC/ath10k_crash.bin 2>&1
> -      then
> -      FOUND_BUG=1
> -
> -      #echo "Found ath10k crash data in $i"
> -      roll_crashes
> -
> -      ADIR=${i/fw_crash_dump/}
> -
> -      CTFW=0
> -      if grep -- -ct- $TMPLOC/ath10k_crash.bin > /dev/null 2>&1
> -	  then
> -	  CTFW=1
> -      fi
> -
> -      echo "Send bug reports to:" > $CRASHDIR/report_to.txt
> -      if [ -f $ADIR/ct_special -o $CTFW == "1" ]
> -	  then
> -	  # Looks like this is CT firmware or driver...
> -	  echo "greearb at candelatech.com" >> $CRASHDIR/report_to.txt
> -	  echo "and/or report or check for duplicates here:" >> $CRASHDIR/report_to.txt
> -	  echo "https://github.com/greearb/ath10k-ct/issues" >> $CRASHDIR/report_to.txt
> -      else
> -	  # Not sure who would want these bug reports for upstream...
> -	  echo "https://www.lede-project.org/" >> $CRASHDIR/report_to.txt
> -      fi
> -      echo >> $CRASHDIR/report_to.txt
> -      echo "Please attach all files in this directory to bug reports." >> $CRASHDIR/report_to.txt
> -
> -      mv $TMPLOC/ath10k_crash.bin $CRASHDIR
> -
> -      # Add any more ath10k specific stuff here.
> -
> -      # And call generic bug reporting logic
> -      bugcheck_generic
> -  fi
> +for i in /sys/kernel/debug/ieee80211/*/ath10k/fw_crash_dump; do
> +	#echo "Checking $i"
> +	cat "$i" > $TMPLOC/ath10k_crash.bin 2>&1 || continue
> +	FOUND_BUG=1
> +
> +	#echo "Found ath10k crash data in $i"
> +	roll_crashes
> +
> +	ADIR=${i/fw_crash_dump/}
> +
> +	CTFW=0
> +	grep -q -- -ct- $TMPLOC/ath10k_crash.bin && CTFW=1
> +
> +	echo "Send bug reports to:" > $CRASHDIR/report_to.txt
> +	if [ -f "$ADIR"/ct_special ] || [ $CTFW = "1" ]; then
> +		# Looks like this is CT firmware or driver...
> +		{
> +			echo "greearb at candelatech.com"
> +			echo "and/or report or check for duplicates here:"
> +			echo "https://github.com/greearb/ath10k-ct/issues"
> +		} >> $CRASHDIR/report_to.txt
> +	else
> +		# Not sure who would want these bug reports for upstream...
> +		echo "https://www.lede-project.org/" >> $CRASHDIR/report_to.txt
> +	fi
> +	echo >> $CRASHDIR/report_to.txt
> +	echo "Please attach all files in this directory to bug reports." >> $CRASHDIR/report_to.txt
> +
> +	mv $TMPLOC/ath10k_crash.bin $CRASHDIR
> +
> +	# Add any more ath10k specific stuff here.
> +
> +	# And call generic bug reporting logic
> +	bugcheck_generic
>  done
>  
> -if [ $FOUND_BUG == "1" ]
> -    then
> -    # Notify LUCI somehow?
> -    echo "bugcheck.sh found an issue to be reported" > /dev/kmsg
> -    echo "See $CRASHDIR for details on how to report this" > /dev/kmsg
> -    # Let calling code know something was wrong.
> -    exit 1
> -fi
> +[ "$FOUND_BUG" -eq "1" ] && {
> +	# Notify LUCI somehow?
> +	echo "bugcheck.sh found an issue to be reported" > /dev/kmsg
> +	echo "See $CRASHDIR for details on how to report this" > /dev/kmsg
> +	# Let calling code know something was wrong.
> +	exit 1
> +}
>  
>  exit 0
> 



More information about the Lede-dev mailing list