[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