In /logs/firmware/unblob_extracted/firmware_extract/1568982-13971496.squashfs_v4_le_extract/sbin/sysupgrade line 3:
. /lib/functions.sh
  ^---------------^ SC1091 (info): Not following: /lib/functions.sh was not specified as input (see shellcheck -x).


In /logs/firmware/unblob_extracted/firmware_extract/1568982-13971496.squashfs_v4_le_extract/sbin/sysupgrade line 4:
. /lib/functions/system.sh
  ^----------------------^ SC1091 (info): Not following: /lib/functions/system.sh was not specified as input (see shellcheck -x).


In /logs/firmware/unblob_extracted/firmware_extract/1568982-13971496.squashfs_v4_le_extract/sbin/sysupgrade line 31:
		-v) export VERBOSE="$(($VERBOSE + 1))";
                                       ^------^ SC2004 (style): $/${} is unnecessary on arithmetic variables.


In /logs/firmware/unblob_extracted/firmware_extract/1568982-13971496.squashfs_v4_le_extract/sbin/sysupgrade line 32:
		-q) export VERBOSE="$(($VERBOSE - 1))";
                                       ^------^ SC2004 (style): $/${} is unnecessary on arithmetic variables.


In /logs/firmware/unblob_extracted/firmware_extract/1568982-13971496.squashfs_v4_le_extract/sbin/sysupgrade line 62:
[ -z "$IMAGE" -a -z "$NEED_IMAGE" -a $CONF_BACKUP_LIST -eq 0 -o $HELP -gt 0 ] && {
              ^-- SC2166 (warning): Prefer [ p ] && [ q ] as [ p -a q ] is not well defined.
                                  ^-- SC2166 (warning): Prefer [ p ] && [ q ] as [ p -a q ] is not well defined.
                                                             ^-- SC2166 (warning): Prefer [ p ] || [ q ] as [ p -o q ] is not well defined.


In /logs/firmware/unblob_extracted/firmware_extract/1568982-13971496.squashfs_v4_le_extract/sbin/sysupgrade line 103:
[ -n "$IMAGE" -a -n "$NEED_IMAGE" ] && {
              ^-- SC2166 (warning): Prefer [ p ] && [ q ] as [ p -a q ] is not well defined.


In /logs/firmware/unblob_extracted/firmware_extract/1568982-13971496.squashfs_v4_le_extract/sbin/sysupgrade line 126:
	list_conffiles | while read file csum; do
                               ^--^ SC2162 (info): read without -r will mangle backslashes.


In /logs/firmware/unblob_extracted/firmware_extract/1568982-13971496.squashfs_v4_le_extract/sbin/sysupgrade line 134:
	local file="$1"
        ^--------^ SC3043 (warning): In POSIX sh, 'local' is undefined.


In /logs/firmware/unblob_extracted/firmware_extract/1568982-13971496.squashfs_v4_le_extract/sbin/sysupgrade line 135:
	( find $(sed -ne '/^[[:space:]]*$/d; /^#/d; p' \
               ^-- SC2046 (warning): Quote this to prevent word splitting.


In /logs/firmware/unblob_extracted/firmware_extract/1568982-13971496.squashfs_v4_le_extract/sbin/sysupgrade line 137:
		\( -type f -o -type l \) $find_filter 2>/dev/null
                                         ^----------^ SC2086 (info): Double quote to prevent globbing and word splitting.

Did you mean: 
		\( -type f -o -type l \) "$find_filter" 2>/dev/null;


In /logs/firmware/unblob_extracted/firmware_extract/1568982-13971496.squashfs_v4_le_extract/sbin/sysupgrade line 143:
	local file="$1"
        ^--------^ SC3043 (warning): In POSIX sh, 'local' is undefined.


In /logs/firmware/unblob_extracted/firmware_extract/1568982-13971496.squashfs_v4_le_extract/sbin/sysupgrade line 145:
	local packagesfiles=$1.packagesfiles
        ^-----------------^ SC3043 (warning): In POSIX sh, 'local' is undefined.
                            ^-- SC2086 (info): Double quote to prevent globbing and word splitting.

Did you mean: 
	local packagesfiles="$1".packagesfiles


In /logs/firmware/unblob_extracted/firmware_extract/1568982-13971496.squashfs_v4_le_extract/sbin/sysupgrade line 149:
		local conffiles=$1.conffiles
                ^-------------^ SC3043 (warning): In POSIX sh, 'local' is undefined.
                                ^-- SC2086 (info): Double quote to prevent globbing and word splitting.

Did you mean: 
		local conffiles="$1".conffiles


In /logs/firmware/unblob_extracted/firmware_extract/1568982-13971496.squashfs_v4_le_extract/sbin/sysupgrade line 150:
		local keepfiles=$1.keepfiles
                ^-------------^ SC3043 (warning): In POSIX sh, 'local' is undefined.
                                ^-- SC2086 (info): Double quote to prevent globbing and word splitting.

Did you mean: 
		local keepfiles="$1".keepfiles


In /logs/firmware/unblob_extracted/firmware_extract/1568982-13971496.squashfs_v4_le_extract/sbin/sysupgrade line 156:
		find $(sed -ne '/^[[:space:]]*$/d; /^#/d; p' \
                     ^-- SC2046 (warning): Quote this to prevent word splitting.


In /logs/firmware/unblob_extracted/firmware_extract/1568982-13971496.squashfs_v4_le_extract/sbin/sysupgrade line 159:
			grep -h -v -x -F -f $conffiles > "$keepfiles"
                                            ^--------^ SC2086 (info): Double quote to prevent globbing and word splitting.

Did you mean: 
			grep -h -v -x -F -f "$conffiles" > "$keepfiles"


In /logs/firmware/unblob_extracted/firmware_extract/1568982-13971496.squashfs_v4_le_extract/sbin/sysupgrade line 172:
		} |  grep -v -x -F -f $conffiles |
                                      ^--------^ SC2086 (info): Double quote to prevent globbing and word splitting.

Did you mean: 
		} |  grep -v -x -F -f "$conffiles" |


In /logs/firmware/unblob_extracted/firmware_extract/1568982-13971496.squashfs_v4_le_extract/sbin/sysupgrade line 173:
		     grep -v -x -F -f $keepfiles | sort -u > "$packagesfiles"
                                      ^--------^ SC2086 (info): Double quote to prevent globbing and word splitting.

Did you mean: 
		     grep -v -x -F -f "$keepfiles" | sort -u > "$packagesfiles"


In /logs/firmware/unblob_extracted/firmware_extract/1568982-13971496.squashfs_v4_le_extract/sbin/sysupgrade line 178:
	[ -s "$packagesfiles" ] || echo > $packagesfiles
                                          ^------------^ SC2086 (info): Double quote to prevent globbing and word splitting.

Did you mean: 
	[ -s "$packagesfiles" ] || echo > "$packagesfiles"


In /logs/firmware/unblob_extracted/firmware_extract/1568982-13971496.squashfs_v4_le_extract/sbin/sysupgrade line 180:
	( cd /overlay/upper/; find .$SAVE_OVERLAY_PATH \( -type f -o -type l \) $find_filter | sed \
          ^----------------^ SC2164 (warning): Use 'cd ... || exit' or 'cd ... || return' in case cd fails.
                                                                                ^----------^ SC2086 (info): Double quote to prevent globbing and word splitting.

Did you mean: 
	( cd /overlay/upper/ || exit; find .$SAVE_OVERLAY_PATH \( -type f -o -type l \) "$find_filter" | sed \


In /logs/firmware/unblob_extracted/firmware_extract/1568982-13971496.squashfs_v4_le_extract/sbin/sysupgrade line 187:
	) | grep -v -x -F -f $packagesfiles > "$file"
                             ^------------^ SC2086 (info): Double quote to prevent globbing and word splitting.

Did you mean: 
	) | grep -v -x -F -f "$packagesfiles" > "$file"


In /logs/firmware/unblob_extracted/firmware_extract/1568982-13971496.squashfs_v4_le_extract/sbin/sysupgrade line 219:
	local conf_tar="$1"
        ^------------^ SC3043 (warning): In POSIX sh, 'local' is undefined.


In /logs/firmware/unblob_extracted/firmware_extract/1568982-13971496.squashfs_v4_le_extract/sbin/sysupgrade line 236:
		mount -t overlay overlay -o lowerdir=$ETCBACKUP_DIR,upperdir=$RAMFS/upper,workdir=$RAMFS/work $ETCBACKUP_DIR &&
                                                                             ^----^ SC2086 (info): Double quote to prevent globbing and word splitting.
                                                                                                  ^----^ SC2086 (info): Double quote to prevent globbing and word splitting.
                                                                                                                             ^-- SC2015 (info): Note that A && B || C is not if-then-else. C may run when A is true.

Did you mean: 
		mount -t overlay overlay -o lowerdir=$ETCBACKUP_DIR,upperdir="$RAMFS"/upper,workdir="$RAMFS"/work $ETCBACKUP_DIR &&


In /logs/firmware/unblob_extracted/firmware_extract/1568982-13971496.squashfs_v4_le_extract/sbin/sysupgrade line 253:
	tar c${TAR_V}zf "$conf_tar" -T "$CONFFILES" 2>/dev/null
             ^------^ SC2086 (info): Double quote to prevent globbing and word splitting.

Did you mean: 
	tar c"${TAR_V}"zf "$conf_tar" -T "$CONFFILES" 2>/dev/null


In /logs/firmware/unblob_extracted/firmware_extract/1568982-13971496.squashfs_v4_le_extract/sbin/sysupgrade line 254:
	if [ "$?" -ne 0 ]; then
             ^--^ SC2181 (style): Check exit code directly with e.g. 'if ! mycmd;', not indirectly with $?.


In /logs/firmware/unblob_extracted/firmware_extract/1568982-13971496.squashfs_v4_le_extract/sbin/sysupgrade line 287:
	tar -C / -x${TAR_V}zf "$CONF_RESTORE"
                   ^------^ SC2086 (info): Double quote to prevent globbing and word splitting.

Did you mean: 
	tar -C / -x"${TAR_V}"zf "$CONF_RESTORE"


In /logs/firmware/unblob_extracted/firmware_extract/1568982-13971496.squashfs_v4_le_extract/sbin/sysupgrade line 335:
	case "$(get_magic_word $CONF_IMAGE cat)" in
                               ^---------^ SC2086 (info): Double quote to prevent globbing and word splitting.

Did you mean: 
	case "$(get_magic_word "$CONF_IMAGE" cat)" in

For more information:
  https://www.shellcheck.net/wiki/SC2046 -- Quote this to prevent word splitt...
  https://www.shellcheck.net/wiki/SC2164 -- Use 'cd ... || exit' or 'cd ... |...
  https://www.shellcheck.net/wiki/SC2166 -- Prefer [ p ] && [ q ] as [ p -a q...