METRICS: Using configs from the Registry (like --config=p/ci) reports pseudonymous rule metrics to semgrep.dev.
To disable Registry rule metrics, use "--metrics=off".
Using configs only from local files (like --config=xyz.yml) does not enable metrics.

More information: https://semgrep.dev/docs/metrics

               
               
┌─────────────┐
│ Scan Status │
└─────────────┘
  Scanning 1045 files tracked by git with 7 Code rules:
  Scanning 58 files with 7 bash rules.
                     
                     
┌───────────────────┐
│ 574 Code Findings │
└───────────────────┘
                                                                                                                        
    /logs/firmware/patool_extraction/DUMP/mtdblock2_unblob_extracted/mtdblock2_extract/0-376832.squashfs_v4_le_extract/m
  ydlink_watchdog.sh                                                                                                    
       external.semgrep-rules.bash.lang.best-practice.useless-cat                                    
          Useless call to 'cat' in a pipeline. Use '<' and '>' for any command to read from a file or
          write to a file.                                                                           
                                                                                                     
          116┆ Free_Memory=`cat /proc/meminfo | grep 'MemFree:' | sed 's/^.*MemFree://g' | sed 's/kB*$//g'`
            ⋮┆----------------------------------------
          116┆ Free_Memory=`cat /proc/meminfo | grep 'MemFree:' | sed 's/^.*MemFree://g' | sed 's/kB*$//g'`
            ⋮┆----------------------------------------
          116┆ Free_Memory=`cat /proc/meminfo | grep 'MemFree:' | sed 's/^.*MemFree://g' | sed 's/kB*$//g'`
            ⋮┆----------------------------------------
          135┆ MEM_PAGES=`cat /proc/${pid}/statm | awk '{print $1}'`
            ⋮┆----------------------------------------
          157┆ state=`cat /proc/${pid}/stat | awk '{print $3}'`
            ⋮┆----------------------------------------
       external.semgrep-rules.bash.lang.correctness.unquoted-command-substitution-in-command          
          The result of command substitution $(...) or `...`, if unquoted, is split on whitespace or  
          other separators specified by the IFS variable. You should surround it with double quotes to
          avoid splitting the result.                                                                 
                                                                                                      
           72┆ `cp /mydlink/config/device.mmt /mydlink/config/device.cfg`
            ⋮┆----------------------------------------
           74┆ `cp /mydlink/device.cfg /mydlink/config/device.cfg`
            ⋮┆----------------------------------------
       external.semgrep-rules.bash.lang.correctness.unquoted-variable-expansion-in-command            
          Variable expansions must be double-quoted so as to prevent being split into multiple pieces 
          according to whitespace or whichever separator is specified by the IFS variable. If you     
          really wish to split the variable's contents, you may use a variable that starts with an    
          underscore e.g. $_X instead of $X, and semgrep will ignore it. If what you need is an array,
          consider using a proper bash array.                                                         
                                                                                                      
           27┆ mkdir -p $TMP_MYDLINK
            ⋮┆----------------------------------------
           28┆ mkdir -p $PID_BASE
            ⋮┆----------------------------------------
           33┆ INTERFACE=`cat $INTERFACE_FILE`
            ⋮┆----------------------------------------
           34┆ LANIP=`ifconfig $INTERFACE | grep 'inet addr' | cut -d: -f2 | awk '{print $1}'`
            ⋮┆----------------------------------------
           60┆ wd_pid=`cat ${WATCHDOG_PID}`
            ⋮┆----------------------------------------
           80┆ mdb_dev_list=`LD_LIBRARY_PATH="/mydlink/lib" $mdb_path get dev_list`
            ⋮┆----------------------------------------
           83┆ mdb_dev_model=`LD_LIBRARY_PATH="/mydlink/lib" $mdb_path get dev_model`
            ⋮┆----------------------------------------
          102┆ rm $PID_BASE/da_adaptor.pid
            ⋮┆----------------------------------------
          103┆ rm $PID_BASE/cda.pid
            ⋮┆----------------------------------------
          104┆ rm $PID_BASE/sa.pid
            ⋮┆----------------------------------------
          105┆ rm $PID_BASE/strmsvr.pid
            ⋮┆----------------------------------------
          132┆ pid=`cat ${PID_BASE}/${1}.pid`
            ⋮┆----------------------------------------
          135┆ MEM_PAGES=`cat /proc/${pid}/statm | awk '{print $1}'`
            ⋮┆----------------------------------------
          136┆ allocated_memory=`expr $MEM_PAGES \* $FW_PAGE_SIZE`
            ⋮┆----------------------------------------
          138┆ killall -9 $1
            ⋮┆----------------------------------------
          154┆ pid=`cat ${PID_BASE}/${1}.pid`
            ⋮┆----------------------------------------
          157┆ state=`cat /proc/${pid}/stat | awk '{print $3}'`
            ⋮┆----------------------------------------
          164┆ restart_cnt=`expr $restart_cnt + 1`
            ⋮┆----------------------------------------
          172┆ killall -9 $1 2>/dev/null
            ⋮┆----------------------------------------
          179┆ LD_LIBRARY_PATH="/mydlink/lib" /mydlink/$1 "$2" "$3" > /dev/null 2>&1 &
            ⋮┆----------------------------------------
          181┆ LD_LIBRARY_PATH="/mydlink/lib" /mydlink/$1 "$2" > /dev/null 2>&1 &
            ⋮┆----------------------------------------
          187┆ echo $pid > "${PID_BASE}/${1}.pid"
            ⋮┆----------------------------------------
          194┆ ca_check_counter=`expr $ca_check_counter + 1`
            ⋮┆----------------------------------------
          197┆ ca_next_check_time=`cat $CA_CHECK_FLAG`
            ⋮┆----------------------------------------
          206┆ eval $MYDLINK_BASE/ca-refresh $CA_CHECK_URL /mydlink/config /tmp > /dev/null 2>&1
            ⋮┆----------------------------------------
          209┆ mv /tmp/ca-bundle.crt $CA_CRT_FILE
            ⋮┆----------------------------------------
          210┆ mv /tmp/ca-bundle.sig $CA_SIG_FILE
            ⋮┆----------------------------------------
          218┆ echo -n $ca_next_check_time > $CA_CHECK_FLAG
            ⋮┆----------------------------------------
          228┆ sleep $UNIT_CHECK_T
            ⋮┆----------------------------------------
          242┆ pid=`cat ${PID_BASE}/${1}.pid`
            ⋮┆----------------------------------------
          243┆ rm $PID_BASE/${1}.pid
            ⋮┆----------------------------------------
          247┆ killall -9 $1 2>/dev/null
            ⋮┆----------------------------------------
          252┆ pid=`pidof $1`
            ⋮┆----------------------------------------
          254┆ killall -9 $1 2>/dev/null
            ⋮┆----------------------------------------
          266┆ mdb_oob_st=`LD_LIBRARY_PATH="/mydlink/lib" $mdb_path get oob_changed`
            ⋮┆----------------------------------------
          275┆ curpid=`cat ${WATCHDOG_PID}`
            ⋮┆----------------------------------------
          291┆ mdb_reg_st=`LD_LIBRARY_PATH="/mydlink/lib" $mdb_path get register_st`
            ⋮┆----------------------------------------
          300┆ check_memory da_adaptor $mem_max_da_adaptor
            ⋮┆----------------------------------------
          301┆ check_memory cda $mem_max_cda
            ⋮┆----------------------------------------
          302┆ check_memory sa $mem_max_sa
            ⋮┆----------------------------------------
          303┆ check_memory strmsvr $mem_max_strmsvr
            ⋮┆----------------------------------------
          310┆ sleep $UNIT_CHECK_T
                                                                                                                        
    /logs/firmware/patool_extraction/DUMP/mtdblock8_unblob_extracted/mtdblock8_extract/0-9650176.squashfs_v4_le_extract/
  etc/openssl/cert_create.sh                                                                                            
       external.semgrep-rules.bash.lang.correctness.unquoted-variable-expansion-in-command            
          Variable expansions must be double-quoted so as to prevent being split into multiple pieces 
          according to whitespace or whichever separator is specified by the IFS variable. If you     
          really wish to split the variable's contents, you may use a variable that starts with an    
          underscore e.g. $_X instead of $X, and semgrep will ignore it. If what you need is an array,
          consider using a proper bash array.                                                         
                                                                                                      
           34┆ country_name=$(tdb get $tdbname $vCountry)
            ⋮┆----------------------------------------
           35┆ state_province=$(tdb get $tdbname $vProvince | sed -re "s/\ /\\\ /g")
            ⋮┆----------------------------------------
           36┆ locality_name=$(tdb get $tdbname $vLocality | sed -re "s/\ /\\\ /g")
            ⋮┆----------------------------------------
           37┆ organization_name=$(tdb get $tdbname $vOrganization | sed -re "s/\ /\\\ /g")
            ⋮┆----------------------------------------
           38┆ organization_unit_name=$(tdb get $tdbname $vOrganization_u | sed -re "s/\ /\\\ /g")
            ⋮┆----------------------------------------
           39┆ common_name=$(tdb get $tdbname $vCommonName | sed -re "s/\ /\\\ /g")
            ⋮┆----------------------------------------
           40┆ validity=$(tdb get $tdbname $vValidity)
            ⋮┆----------------------------------------
           41┆ keylen=$(tdb get $tdbname $vKeyLen)
            ⋮┆----------------------------------------
           55┆ openssl req -sha256 -new -newkey rsa:$keylen -x509 -keyout /tmp/server.key -out /tmp/server.crt -days    
  $validity -nodes -config $OPENSSL_CONF -subj /C=$country_n ...                                                     
            [shortened a long line from output, adjust with --max-chars-per-line]
                                                                                                                        
    /logs/firmware/patool_extraction/DUMP/mtdblock8_unblob_extracted/mtdblock8_extract/0-9650176.squashfs_v4_le_extract/
  etc/openssl/csr_create.sh                                                                                             
       external.semgrep-rules.bash.lang.correctness.unquoted-variable-expansion-in-command            
          Variable expansions must be double-quoted so as to prevent being split into multiple pieces 
          according to whitespace or whichever separator is specified by the IFS variable. If you     
          really wish to split the variable's contents, you may use a variable that starts with an    
          underscore e.g. $_X instead of $X, and semgrep will ignore it. If what you need is an array,
          consider using a proper bash array.                                                         
                                                                                                      
           13┆ country_name=$(tdb get $tdbname $vCountry)
            ⋮┆----------------------------------------
           14┆ state_province=$(tdb get $tdbname $vProvince | sed -re "s/\ /\\\ /g")
            ⋮┆----------------------------------------
           15┆ locality_name=$(tdb get $tdbname $vLocality | sed -re "s/\ /\\\ /g")
            ⋮┆----------------------------------------
           16┆ organization_name=$(tdb get $tdbname $vOrganization | sed -re "s/\ /\\\ /g")
            ⋮┆----------------------------------------
           17┆ organization_unit_name=$(tdb get $tdbname $vOrganization_u | sed -re "s/\ /\\\ /g")
            ⋮┆----------------------------------------
           18┆ common_name=$(tdb get $tdbname $vCommonName | sed -re "s/\ /\\\ /g")
            ⋮┆----------------------------------------
           19┆ validity=$(tdb get $tdbname $vValidity)
            ⋮┆----------------------------------------
           20┆ keylen=$(tdb get $tdbname $vKeyLen)
            ⋮┆----------------------------------------
           34┆ openssl req -config $OPENSSL_CONF -new -newkey rsa:$keylen -nodes -keyout /tmp/server.key -out           
  /tmp/server.csr -subj /C=$country_name/ST="$state_province"/L="$l ...                                              
            [shortened a long line from output, adjust with --max-chars-per-line]
                                                                                                                        
    /logs/firmware/patool_extraction/DUMP/mtdblock8_unblob_extracted/mtdblock8_extract/0-9650176.squashfs_v4_le_extract/
  etc/rc.d/init.d/avcd.sh                                                                                               
       external.semgrep-rules.bash.lang.correctness.unquoted-command-substitution-in-command          
          The result of command substitution $(...) or `...`, if unquoted, is split on whitespace or  
          other separators specified by the IFS variable. You should surround it with double quotes to
          avoid splitting the result.                                                                 
                                                                                                      
           22┆ kill -s SIGUSR2 $(echo $pids | cut -d' ' -f1)
            ⋮┆----------------------------------------
           27┆ eval $(dumpKeys | tdb get Microphone)
            ⋮┆----------------------------------------
           30┆ eval $(dumpKeys | tdb get Speaker)
            ⋮┆----------------------------------------
       external.semgrep-rules.bash.lang.correctness.unquoted-variable-expansion-in-command            
          Variable expansions must be double-quoted so as to prevent being split into multiple pieces 
          according to whitespace or whichever separator is specified by the IFS variable. If you     
          really wish to split the variable's contents, you may use a variable that starts with an    
          underscore e.g. $_X instead of $X, and semgrep will ignore it. If what you need is an array,
          consider using a proper bash array.                                                         
                                                                                                      
            7┆ echo $@
            ⋮┆----------------------------------------
           20┆ pids=$(pidof $daemon) || { echo "$daemon is not running." && return 1; }
            ⋮┆----------------------------------------
           22┆ kill -s SIGUSR2 $(echo $pids | cut -d' ' -f1)
            ⋮┆----------------------------------------
           36┆ $mixer igain $micVolume
            ⋮┆----------------------------------------
           38┆ $mixer igain 0
            ⋮┆----------------------------------------
           42┆ $mixer vol $speakerVolume
            ⋮┆----------------------------------------
           44┆ $mixer vol 0
            ⋮┆----------------------------------------
           54┆ $binary > /dev/null 2> /dev/null &
            ⋮┆----------------------------------------
           57┆ pids=$(pidof $daemon) && echo -17 > /proc/$pids/oom_adj && break
            ⋮┆----------------------------------------
           73┆ pids=$(pidof $daemon) && echo "($pids) is running." || echo " is stop."
            ⋮┆----------------------------------------
           77┆ pids=$(pidof $daemon) && return 1 || return 0
            ⋮┆----------------------------------------
           87┆ killall -USR1 $daemon
                                                                                                                        
    /logs/firmware/patool_extraction/DUMP/mtdblock8_unblob_extracted/mtdblock8_extract/0-9650176.squashfs_v4_le_extract/
  etc/rc.d/init.d/bluetoothd.sh                                                                                         
       external.semgrep-rules.bash.lang.correctness.unquoted-command-substitution-in-command          
          The result of command substitution $(...) or `...`, if unquoted, is split on whitespace or  
          other separators specified by the IFS variable. You should surround it with double quotes to
          avoid splitting the result.                                                                 
                                                                                                      
           64┆ kill $(echo $pids | cut -d' ' -f1)
            ⋮┆----------------------------------------
       external.semgrep-rules.bash.lang.correctness.unquoted-variable-expansion-in-command            
          Variable expansions must be double-quoted so as to prevent being split into multiple pieces 
          according to whitespace or whichever separator is specified by the IFS variable. If you     
          really wish to split the variable's contents, you may use a variable that starts with an    
          underscore e.g. $_X instead of $X, and semgrep will ignore it. If what you need is an array,
          consider using a proper bash array.                                                         
                                                                                                      
            7┆ echo $@
            ⋮┆----------------------------------------
           16┆ pids=$(pidof $daemon) && return 1 || return 0
            ⋮┆----------------------------------------
           43┆ $binary -n -E -p "gatt, gatt_example" -q "$pincode" -s > /dev/null 2>&1 &
            ⋮┆----------------------------------------
           46┆ $binary -n -E -p "gatt, gatt_example" -q "$pincode" > /dev/null 2>&1 &
            ⋮┆----------------------------------------
           64┆ kill $(echo $pids | cut -d' ' -f1)
            ⋮┆----------------------------------------
           71┆ killall $daemon
            ⋮┆----------------------------------------
           78┆ killall -9 $daemon
                                                                                                                        
    /logs/firmware/patool_extraction/DUMP/mtdblock8_unblob_extracted/mtdblock8_extract/0-9650176.squashfs_v4_le_extract/
  etc/rc.d/init.d/db_analysis.sh                                                                                        
       external.semgrep-rules.bash.lang.correctness.unquoted-command-substitution-in-command          
          The result of command substitution $(...) or `...`, if unquoted, is split on whitespace or  
          other separators specified by the IFS variable. You should surround it with double quotes to
          avoid splitting the result.                                                                 
                                                                                                      
           32┆ kill $(echo $pids | cut -d' ' -f1)
            ⋮┆----------------------------------------
       external.semgrep-rules.bash.lang.correctness.unquoted-variable-expansion-in-command            
          Variable expansions must be double-quoted so as to prevent being split into multiple pieces 
          according to whitespace or whichever separator is specified by the IFS variable. If you     
          really wish to split the variable's contents, you may use a variable that starts with an    
          underscore e.g. $_X instead of $X, and semgrep will ignore it. If what you need is an array,
          consider using a proper bash array.                                                         
                                                                                                      
            7┆ echo $@
            ⋮┆----------------------------------------
           20┆ $binary > /dev/null 2> /dev/null &
            ⋮┆----------------------------------------
           26┆ pids=$(pidof $daemon) && echo "($pids) is running." || echo " is stop."
            ⋮┆----------------------------------------
           30┆ pids=$(pidof $daemon) || { echo "$daemon is not running." && return 1; }
            ⋮┆----------------------------------------
           32┆ kill $(echo $pids | cut -d' ' -f1)
            ⋮┆----------------------------------------
           34┆ pids=$(pidof $daemon) && killall -9 $daemon && sleep 1 && pids=$(pidof $daemon) && die "ng." || echo     
  "ok."                                                                                                                 
            ⋮┆----------------------------------------
           34┆ pids=$(pidof $daemon) && killall -9 $daemon && sleep 1 && pids=$(pidof $daemon) && die "ng." || echo     
  "ok."                                                                                                                 
            ⋮┆----------------------------------------
           34┆ pids=$(pidof $daemon) && killall -9 $daemon && sleep 1 && pids=$(pidof $daemon) && die "ng." || echo     
  "ok."                                                                                                                 
                                                                                                                        
    /logs/firmware/patool_extraction/DUMP/mtdblock8_unblob_extracted/mtdblock8_extract/0-9650176.squashfs_v4_le_extract/
  etc/rc.d/init.d/dbd.sh                                                                                                
       external.semgrep-rules.bash.lang.correctness.unquoted-command-substitution-in-command          
          The result of command substitution $(...) or `...`, if unquoted, is split on whitespace or  
          other separators specified by the IFS variable. You should surround it with double quotes to
          avoid splitting the result.                                                                 
                                                                                                      
           23┆ tdb set HTTPAccount AdminPasswd_ss=$(pibinfo Pincode)
            ⋮┆----------------------------------------
           84┆ tdb set HTTPAccount AdminPasswd_ss=$(pibinfo FactoryPassword)
            ⋮┆----------------------------------------
           87┆ tdb set HTTPAccount AdminPasswd_ss=$(pibinfo Pincode)
            ⋮┆----------------------------------------
           89┆ tdb set Wireless AP_PW_ls=$(pibinfo ApKey)
            ⋮┆----------------------------------------
           91┆ tdb set HTTPAccount AdminPasswd_ss=$(pibinfo FactoryPassword)
            ⋮┆----------------------------------------
           93┆ tdb set Wireless AP_PW_ls=$(pibinfo ApKey)
            ⋮┆----------------------------------------
          126┆ kill $(echo $pids | cut -d' ' -f1)
            ⋮┆----------------------------------------
       external.semgrep-rules.bash.lang.correctness.unquoted-variable-expansion-in-command            
          Variable expansions must be double-quoted so as to prevent being split into multiple pieces 
          according to whitespace or whichever separator is specified by the IFS variable. If you     
          really wish to split the variable's contents, you may use a variable that starts with an    
          underscore e.g. $_X instead of $X, and semgrep will ignore it. If what you need is an array,
          consider using a proper bash array.                                                         
                                                                                                      
            7┆ echo $@
            ⋮┆----------------------------------------
           33┆ Last4Mac=$(echo $MacAddress | cut -b 9-12)
            ⋮┆----------------------------------------
           43┆ rm -f $file
            ⋮┆----------------------------------------
           50┆ major="$(echo $hwVer | cut -d '.' -f 1)"
            ⋮┆----------------------------------------
           51┆ minor=$(echo $hwVer | cut -d '.' -f 2)
            ⋮┆----------------------------------------
           59┆ echo "name=$model-$(echo $mac | cut -b 9-12)" >> $file
            ⋮┆----------------------------------------
           71┆ tdb set Host CameraName_ms=$model
            ⋮┆----------------------------------------
           72┆ tdb set OSD Text_ss=$model
            ⋮┆----------------------------------------
           73┆ tdb set TargetSnapFTP Prefix_ss=$model
            ⋮┆----------------------------------------
           74┆ tdb set TargetClipFTP Prefix_ss=$model
            ⋮┆----------------------------------------
           75┆ tdb set TargetSamba ShareFolder_ss=$model
            ⋮┆----------------------------------------
           76┆ tdb set Scopes Name_ls=$model
            ⋮┆----------------------------------------
           77┆ tdb set Image Frequency_num=$power_freq
            ⋮┆----------------------------------------
           79┆ mac_b5=$(echo $mac_addr | cut -d':' -f5)
            ⋮┆----------------------------------------
           80┆ mac_b6=$(echo $mac_addr | cut -d':' -f6)
            ⋮┆----------------------------------------
           88┆ tdb set Wireless AP_SSID_ms=${model}-${mac_b5}${mac_b6}
            ⋮┆----------------------------------------
           92┆ tdb set Wireless AP_SSID_ms=${model}-${mac_b5}${mac_b6}
            ⋮┆----------------------------------------
          108┆ $binary > /dev/null 2> /dev/null &
            ⋮┆----------------------------------------
          119┆ pids=$(pidof $daemon) && echo "($pids) is running." || echo " is stop."
            ⋮┆----------------------------------------
          123┆ pids=$(pidof $daemon) || { echo "$daemon is not running." && return 1; }
            ⋮┆----------------------------------------
          126┆ kill $(echo $pids | cut -d' ' -f1)
            ⋮┆----------------------------------------
          128┆ pids=$(pidof $daemon) || break
            ⋮┆----------------------------------------
          130┆ pids=$(pidof $daemon) && killall -9 $daemon && sleep 1 && pids=$(pidof $daemon) && die "ng." || echo     
  "ok."                                                                                                                 
            ⋮┆----------------------------------------
          130┆ pids=$(pidof $daemon) && killall -9 $daemon && sleep 1 && pids=$(pidof $daemon) && die "ng." || echo     
  "ok."                                                                                                                 
            ⋮┆----------------------------------------
          130┆ pids=$(pidof $daemon) && killall -9 $daemon && sleep 1 && pids=$(pidof $daemon) && die "ng." || echo     
  "ok."                                                                                                                 
                                                                                                                        
    /logs/firmware/patool_extraction/DUMP/mtdblock8_unblob_extracted/mtdblock8_extract/0-9650176.squashfs_v4_le_extract/
  etc/rc.d/init.d/dbus-daemon.sh                                                                                        
       external.semgrep-rules.bash.lang.correctness.unquoted-command-substitution-in-command          
          The result of command substitution $(...) or `...`, if unquoted, is split on whitespace or  
          other separators specified by the IFS variable. You should surround it with double quotes to
          avoid splitting the result.                                                                 
                                                                                                      
           42┆ kill $(echo $pids | cut -d' ' -f1)
            ⋮┆----------------------------------------
       external.semgrep-rules.bash.lang.correctness.unquoted-variable-expansion-in-command            
          Variable expansions must be double-quoted so as to prevent being split into multiple pieces 
          according to whitespace or whichever separator is specified by the IFS variable. If you     
          really wish to split the variable's contents, you may use a variable that starts with an    
          underscore e.g. $_X instead of $X, and semgrep will ignore it. If what you need is an array,
          consider using a proper bash array.                                                         
                                                                                                      
            7┆ echo $@
            ⋮┆----------------------------------------
           16┆ pids=$(pidof $daemon) && return 1 || return 0
            ⋮┆----------------------------------------
           26┆ $binary --system > /dev/null 2> /dev/null &
            ⋮┆----------------------------------------
           42┆ kill $(echo $pids | cut -d' ' -f1)
            ⋮┆----------------------------------------
           49┆ killall $daemon
            ⋮┆----------------------------------------
           56┆ killall -9 $daemon
                                                                                                                        
    /logs/firmware/patool_extraction/DUMP/mtdblock8_unblob_extracted/mtdblock8_extract/0-9650176.squashfs_v4_le_extract/
  etc/rc.d/init.d/dibbler.sh                                                                                            
       external.semgrep-rules.bash.lang.correctness.unquoted-command-substitution-in-command          
          The result of command substitution $(...) or `...`, if unquoted, is split on whitespace or  
          other separators specified by the IFS variable. You should surround it with double quotes to
          avoid splitting the result.                                                                 
                                                                                                      
           35┆ kill -s SIGUSR1 $(echo $pids | cut -d' ' -f1)
            ⋮┆----------------------------------------
           53┆ kill -s SIGUSR2 $(echo $pids | cut -d' ' -f1)
            ⋮┆----------------------------------------
       external.semgrep-rules.bash.lang.correctness.unquoted-variable-expansion-in-command            
          Variable expansions must be double-quoted so as to prevent being split into multiple pieces 
          according to whitespace or whichever separator is specified by the IFS variable. If you     
          really wish to split the variable's contents, you may use a variable that starts with an    
          underscore e.g. $_X instead of $X, and semgrep will ignore it. If what you need is an array,
          consider using a proper bash array.                                                         
                                                                                                      
            7┆ echo $@
            ⋮┆----------------------------------------
           23┆ $binary start > /dev/null 2> /dev/null &
            ⋮┆----------------------------------------
           29┆ pids=$(pidof $daemon) && echo "($pids) is running." || echo " is stop."
            ⋮┆----------------------------------------
           33┆ pids=$(pidof $daemon) || { echo "$daemon is not running." && return 1; }
            ⋮┆----------------------------------------
           35┆ kill -s SIGUSR1 $(echo $pids | cut -d' ' -f1)
            ⋮┆----------------------------------------
           44┆ killall -0 $daemon > /dev/null 2>&1
            ⋮┆----------------------------------------
           45┆ while [ $? == 0 -a $((count++)) -le 6 ]; do sleep 1; killall -0 $daemon > /dev/null 2>&; done;
            ⋮┆----------------------------------------
           49┆ pids=$(pidof $daemon) || { echo "$daemon is not running." && return 1; }
            ⋮┆----------------------------------------
           51┆ $daemon stop &
            ⋮┆----------------------------------------
           53┆ kill -s SIGUSR2 $(echo $pids | cut -d' ' -f1)
            ⋮┆----------------------------------------
           57┆ pids=$(pidof $daemon) && echo "force kill $daemon" && killall -9 $daemon && sleep 1 && pids=$(pidof      
  $daemon) && echo "force " && die "ng." || echo "ok."                                                                  
            ⋮┆----------------------------------------
           57┆ pids=$(pidof $daemon) && echo "force kill $daemon" && killall -9 $daemon && sleep 1 && pids=$(pidof      
  $daemon) && echo "force " && die "ng." || echo "ok."                                                                  
            ⋮┆----------------------------------------
           57┆ pids=$(pidof $daemon) && echo "force kill $daemon" && killall -9 $daemon && sleep 1 && pids=$(pidof      
  $daemon) && echo "force " && die "ng." || echo "ok."                                                                  
                                                                                                                        
    /logs/firmware/patool_extraction/DUMP/mtdblock8_unblob_extracted/mtdblock8_extract/0-9650176.squashfs_v4_le_extract/
  etc/rc.d/init.d/discovery.sh                                                                                          
       external.semgrep-rules.bash.lang.correctness.unquoted-command-substitution-in-command          
          The result of command substitution $(...) or `...`, if unquoted, is split on whitespace or  
          other separators specified by the IFS variable. You should surround it with double quotes to
          avoid splitting the result.                                                                 
                                                                                                      
           63┆ eval $(dumpSystemKeys | tdb get System)
            ⋮┆----------------------------------------
           88┆ kill $(echo $pids)
            ⋮┆----------------------------------------
       external.semgrep-rules.bash.lang.correctness.unquoted-variable-expansion-in-command            
          Variable expansions must be double-quoted so as to prevent being split into multiple pieces 
          according to whitespace or whichever separator is specified by the IFS variable. If you     
          really wish to split the variable's contents, you may use a variable that starts with an    
          underscore e.g. $_X instead of $X, and semgrep will ignore it. If what you need is an array,
          consider using a proper bash array.                                                         
                                                                                                      
            9┆ echo $@
            ⋮┆----------------------------------------
           38┆ ethtool $1 2> /dev/null | grep -q "Link detected: yes"
            ⋮┆----------------------------------------
           65┆ route add -host 239.255.255.250 dev $median 2> /dev/null
            ⋮┆----------------------------------------
           66┆ $binary -i $median "$debug" > /dev/null 2> /dev/null &
            ⋮┆----------------------------------------
           76┆ pids=$(pidof $daemon) && echo "($pids) is running." || echo " is stop."
            ⋮┆----------------------------------------
           87┆ pids=$(pidof $daemon) || { echo "$daemon is not running." && return 1; }
            ⋮┆----------------------------------------
           88┆ kill $(echo $pids)
            ⋮┆----------------------------------------
           90┆ $binary -o "bye" -i $median
                                                                                                                        
    /logs/firmware/patool_extraction/DUMP/mtdblock8_unblob_extracted/mtdblock8_extract/0-9650176.squashfs_v4_le_extract/
  etc/rc.d/init.d/firewall.sh                                                                                           
       external.semgrep-rules.bash.lang.correctness.unquoted-command-substitution-in-command          
          The result of command substitution $(...) or `...`, if unquoted, is split on whitespace or  
          other separators specified by the IFS variable. You should surround it with double quotes to
          avoid splitting the result.                                                                 
                                                                                                      
           57┆ eval $(loadDBSetting)
            ⋮┆----------------------------------------
       external.semgrep-rules.bash.lang.correctness.unquoted-variable-expansion-in-command            
          Variable expansions must be double-quoted so as to prevent being split into multiple pieces 
          according to whitespace or whichever separator is specified by the IFS variable. If you     
          really wish to split the variable's contents, you may use a variable that starts with an    
          underscore e.g. $_X instead of $X, and semgrep will ignore it. If what you need is an array,
          consider using a proper bash array.                                                         
                                                                                                      
            9┆ echo $@
            ⋮┆----------------------------------------
           18┆ $binary_v4 -F
            ⋮┆----------------------------------------
           19┆ $binary_v4 -X
            ⋮┆----------------------------------------
           20┆ $binary_v4 -Z
            ⋮┆----------------------------------------
           21┆ $binary_v4 -P INPUT ACCEPT
            ⋮┆----------------------------------------
           23┆ $binary_v6 -F
            ⋮┆----------------------------------------
           24┆ $binary_v6 -X
            ⋮┆----------------------------------------
           25┆ $binary_v6 -Z
            ⋮┆----------------------------------------
           26┆ $binary_v6 -P INPUT ACCEPT
            ⋮┆----------------------------------------
           31┆ $binary_v4 -P INPUT $defaultAction
            ⋮┆----------------------------------------
           33┆ $binary_v6 -P INPUT $defaultAction
            ⋮┆----------------------------------------
           65┆ $binary_v4 -A INPUT -i lo -j ACCEPT
            ⋮┆----------------------------------------
           67┆ $binary_v6 -A INPUT -i lo -j ACCEPT
            ⋮┆----------------------------------------
           75┆ $binary_v4 -I INPUT -m iprange --src-range $ip -j $action
            ⋮┆----------------------------------------
           77┆ $binary_v4 -A INPUT -s $ip -j $action
            ⋮┆----------------------------------------
           86┆ $binary_v6 -I INPUT -m iprange --src-range $ip -j $action
            ⋮┆----------------------------------------
           88┆ $binary_v6 -A INPUT -s $ip -j $action
            ⋮┆----------------------------------------
           94┆ $binary_v6 -I INPUT -s $AdminAllowAddr_ss -j ACCEPT
            ⋮┆----------------------------------------
           96┆ $binary_v4 -I INPUT -s $AdminAllowAddr_ss -j ACCEPT
            ⋮┆----------------------------------------
          106┆ $binary_v4 -L -n
            ⋮┆----------------------------------------
          109┆ $binary_v6 -L -n
                                                                                                                        
    /logs/firmware/patool_extraction/DUMP/mtdblock8_unblob_extracted/mtdblock8_extract/0-9650176.squashfs_v4_le_extract/
  etc/rc.d/init.d/getters.sh                                                                                            
       external.semgrep-rules.bash.lang.correctness.unquoted-variable-expansion-in-command            
          Variable expansions must be double-quoted so as to prevent being split into multiple pieces 
          according to whitespace or whichever separator is specified by the IFS variable. If you     
          really wish to split the variable's contents, you may use a variable that starts with an    
          underscore e.g. $_X instead of $X, and semgrep will ignore it. If what you need is an array,
          consider using a proper bash array.                                                         
                                                                                                      
            5┆ echo $@
            ⋮┆----------------------------------------
           15┆ $prefix/etc/rc.d/init.d/rtpd.sh start $prefix
            ⋮┆----------------------------------------
           16┆ $prefix/etc/rc.d/init.d/rtspd.sh start $prefix
            ⋮┆----------------------------------------
           17┆ $prefix/etc/rc.d/init.d/Ruler.sh start $prefix
            ⋮┆----------------------------------------
           22┆ $prefix/etc/rc.d/init.d/rtpd.sh status $prefix
            ⋮┆----------------------------------------
           23┆ $prefix/etc/rc.d/init.d/rtspd.sh status $prefix
            ⋮┆----------------------------------------
           24┆ $prefix/etc/rc.d/init.d/Ruler.sh status $prefix
            ⋮┆----------------------------------------
           39┆ echo Daemons are killed: $daemons ...
            ⋮┆----------------------------------------
           40┆ killall $daemons
            ⋮┆----------------------------------------
           43┆ pids=$(pidof $daemons) || return 0
            ⋮┆----------------------------------------
           44┆ echo $daemons is not stop clearly
            ⋮┆----------------------------------------
           45┆ killall $daemons
            ⋮┆----------------------------------------
           49┆ killall -9 $daemons
                                                                                                                        
    /logs/firmware/patool_extraction/DUMP/mtdblock8_unblob_extracted/mtdblock8_extract/0-9650176.squashfs_v4_le_extract/
  etc/rc.d/init.d/lighttpd.sh                                                                                           
       external.semgrep-rules.bash.lang.correctness.unquoted-command-substitution-in-command          
          The result of command substitution $(...) or `...`, if unquoted, is split on whitespace or  
          other separators specified by the IFS variable. You should surround it with double quotes to
          avoid splitting the result.                                                                 
                                                                                                      
           97┆ $1:$mac_realm:$(md5hex "$1:$mac_realm:$2")
            ⋮┆----------------------------------------
           98┆ $1:nipca:$(md5hex "$1:nipca:$2")
            ⋮┆----------------------------------------
           99┆ $1:onvif:$(md5hex "$1:onvif:$2")
            ⋮┆----------------------------------------
          427┆ eval $(dumpAccountKey | tdb get HTTPAccount)
            ⋮┆----------------------------------------
          457┆ kill -USR1 $(pidof rtspd | cut -d' ' -f1)
            ⋮┆----------------------------------------
          468┆ kill $(echo $pids | cut -d' ' -f1)
            ⋮┆----------------------------------------
          514┆ eval $(dumpAccountKey | tdb get HTTPAccount)
            ⋮┆----------------------------------------
          520┆ kill -SIGHUP $(echo $pids | cut -d' ' -f1)
            ⋮┆----------------------------------------
          522┆ kill -USR1 $(pidof rtspd | cut -d' ' -f1)
            ⋮┆----------------------------------------
       external.semgrep-rules.bash.lang.correctness.unquoted-variable-expansion-in-command            
          Variable expansions must be double-quoted so as to prevent being split into multiple pieces 
          according to whitespace or whichever separator is specified by the IFS variable. If you     
          really wish to split the variable's contents, you may use a variable that starts with an    
          underscore e.g. $_X instead of $X, and semgrep will ignore it. If what you need is an array,
          consider using a proper bash array.                                                         
                                                                                                      
           21┆ echo $@
            ⋮┆----------------------------------------
           97┆ $1:$mac_realm:$(md5hex "$1:$mac_realm:$2")
            ⋮┆----------------------------------------
           98┆ $1:nipca:$(md5hex "$1:nipca:$2")
            ⋮┆----------------------------------------
           99┆ $1:onvif:$(md5hex "$1:onvif:$2")
            ⋮┆----------------------------------------
          451┆ [ -d "/mnt/usb/$model" ] && [ ! -L "/var/www/volumes/local" ] && ln -sf /mnt/usb/$model                  
  /var/www/volumes/local                                                                                                
            ⋮┆----------------------------------------
          452┆ [ -d "/mnt/usb/$model" ] && [ ! -L "/var/www/volumes2/local" ] && ln -sf /mnt/usb/$model                 
  /var/www/volumes2/local                                                                                               
            ⋮┆----------------------------------------
          455┆ $binary -f $prefix/etc/lighttpd/lighttpd.conf -m $prefix/lib
            ⋮┆----------------------------------------
          462┆ pids=$(pidof $daemon) && echo "($pids) is running." || echo " is stop."
            ⋮┆----------------------------------------
          466┆ pids=$(pidof $daemon) || { echo "$daemon is not running." && return 1; }
            ⋮┆----------------------------------------
          468┆ kill $(echo $pids | cut -d' ' -f1)
            ⋮┆----------------------------------------
          470┆ pids=$(pidof $daemon) && killall -9 $daemon && sleep 1 && pids=$(pidof $daemon) && die "ng." || echo     
  "ok."                                                                                                                 
            ⋮┆----------------------------------------
          470┆ pids=$(pidof $daemon) && killall -9 $daemon && sleep 1 && pids=$(pidof $daemon) && die "ng." || echo     
  "ok."                                                                                                                 
            ⋮┆----------------------------------------
          470┆ pids=$(pidof $daemon) && killall -9 $daemon && sleep 1 && pids=$(pidof $daemon) && die "ng." || echo     
  "ok."                                                                                                                 
            ⋮┆----------------------------------------
          519┆ pids=$(pidof $daemon) || { echo "$daemon is not running." && return 1; }
            ⋮┆----------------------------------------
          520┆ kill -SIGHUP $(echo $pids | cut -d' ' -f1)
                                                                                                                        
    /logs/firmware/patool_extraction/DUMP/mtdblock8_unblob_extracted/mtdblock8_extract/0-9650176.squashfs_v4_le_extract/
  etc/rc.d/init.d/lighttpd_ssl.sh                                                                                       
       external.semgrep-rules.bash.lang.correctness.unquoted-command-substitution-in-command          
          The result of command substitution $(...) or `...`, if unquoted, is split on whitespace or  
          other separators specified by the IFS variable. You should surround it with double quotes to
          avoid splitting the result.                                                                 
                                                                                                      
           88┆ eval $(dumpAccountKey | tdb get HTTPAccount)
            ⋮┆----------------------------------------
           97┆ $1:$mac_realm:$(md5hex "$1:$mac_realm:$2")
            ⋮┆----------------------------------------
           98┆ $1:nipca:$(md5hex "$1:nipca:$2")
            ⋮┆----------------------------------------
           99┆ $1:onvif:$(md5hex "$1:onvif:$2")
            ⋮┆----------------------------------------
          338┆ kill $(echo $pids | cut -d' ' -f1)
            ⋮┆----------------------------------------
       external.semgrep-rules.bash.lang.correctness.unquoted-variable-expansion-in-command            
          Variable expansions must be double-quoted so as to prevent being split into multiple pieces 
          according to whitespace or whichever separator is specified by the IFS variable. If you     
          really wish to split the variable's contents, you may use a variable that starts with an    
          underscore e.g. $_X instead of $X, and semgrep will ignore it. If what you need is an array,
          consider using a proper bash array.                                                         
                                                                                                      
           20┆ echo $@
            ⋮┆----------------------------------------
           97┆ $1:$mac_realm:$(md5hex "$1:$mac_realm:$2")
            ⋮┆----------------------------------------
           98┆ $1:nipca:$(md5hex "$1:nipca:$2")
            ⋮┆----------------------------------------
           99┆ $1:onvif:$(md5hex "$1:onvif:$2")
            ⋮┆----------------------------------------
          326┆ $binary -f $prefix/etc/lighttpd/lighttpd_ssl.conf -m $prefix/lib
            ⋮┆----------------------------------------
          332┆ pids=$(pidof $daemon) && echo "($pids) is running." || echo " is stop."
            ⋮┆----------------------------------------
          336┆ pids=$(pidof $daemon) || { echo "$daemon is not running." && return 1; }
            ⋮┆----------------------------------------
          338┆ kill $(echo $pids | cut -d' ' -f1)
            ⋮┆----------------------------------------
          340┆ pids=$(pidof $daemon) && killall -9 $daemon && sleep 1 && pids=$(pidof $daemon) && die "ng." || echo     
  "ok."                                                                                                                 
            ⋮┆----------------------------------------
          340┆ pids=$(pidof $daemon) && killall -9 $daemon && sleep 1 && pids=$(pidof $daemon) && die "ng." || echo     
  "ok."                                                                                                                 
            ⋮┆----------------------------------------
          340┆ pids=$(pidof $daemon) && killall -9 $daemon && sleep 1 && pids=$(pidof $daemon) && die "ng." || echo     
  "ok."                                                                                                                 
            ⋮┆----------------------------------------
          350┆ ln -sf $prefix/sbin/lighttpd $prefix/sbin/$daemon
                                                                                                                        
    /logs/firmware/patool_extraction/DUMP/mtdblock8_unblob_extracted/mtdblock8_extract/0-9650176.squashfs_v4_le_extract/
  etc/rc.d/init.d/logd-deprecated.sh                                                                                    
       external.semgrep-rules.bash.lang.correctness.unquoted-command-substitution-in-command          
          The result of command substitution $(...) or `...`, if unquoted, is split on whitespace or  
          other separators specified by the IFS variable. You should surround it with double quotes to
          avoid splitting the result.                                                                 
                                                                                                      
           33┆ kill $(echo $pids | cut -d' ' -f1)
            ⋮┆----------------------------------------
           41┆ kill -s SIGUSR1 $(echo $pids | cut -d' ' -f1)
            ⋮┆----------------------------------------
       external.semgrep-rules.bash.lang.correctness.unquoted-variable-expansion-in-command            
          Variable expansions must be double-quoted so as to prevent being split into multiple pieces 
          according to whitespace or whichever separator is specified by the IFS variable. If you     
          really wish to split the variable's contents, you may use a variable that starts with an    
          underscore e.g. $_X instead of $X, and semgrep will ignore it. If what you need is an array,
          consider using a proper bash array.                                                         
                                                                                                      
            7┆ echo $@
            ⋮┆----------------------------------------
           21┆ $binary > /dev/null 2> /dev/null &
            ⋮┆----------------------------------------
           27┆ pids=$(pidof $daemon) && echo "($pids) is running." || echo " is stop."
            ⋮┆----------------------------------------
           31┆ pids=$(pidof $daemon) || { echo "$daemon is not running." && return 1; }
            ⋮┆----------------------------------------
           33┆ kill $(echo $pids | cut -d' ' -f1)
            ⋮┆----------------------------------------
           35┆ pids=$(pidof $daemon) && killall -9 $daemon && sleep 1 && pids=$(pidof $daemon) && die "ng." || echo     
  "ok."                                                                                                                 
            ⋮┆----------------------------------------
           35┆ pids=$(pidof $daemon) && killall -9 $daemon && sleep 1 && pids=$(pidof $daemon) && die "ng." || echo     
  "ok."                                                                                                                 
            ⋮┆----------------------------------------
           35┆ pids=$(pidof $daemon) && killall -9 $daemon && sleep 1 && pids=$(pidof $daemon) && die "ng." || echo     
  "ok."                                                                                                                 
            ⋮┆----------------------------------------
           39┆ pids=$(pidof $daemon) || { echo "$daemon is not running." && return 1; }
            ⋮┆----------------------------------------
           41┆ kill -s SIGUSR1 $(echo $pids | cut -d' ' -f1)
                                                                                                                        
    /logs/firmware/patool_extraction/DUMP/mtdblock8_unblob_extracted/mtdblock8_extract/0-9650176.squashfs_v4_le_extract/
  etc/rc.d/init.d/mDNSResponder.sh                                                                                      
       external.semgrep-rules.bash.lang.best-practice.useless-cat                                    
          Useless call to 'cat' in a pipeline. Use '<' and '>' for any command to read from a file or
          write to a file.                                                                           
                                                                                                     
           24┆ MDVersion=$(cat /mydlink/version | sed 's/VERSION=//g')
            ⋮┆----------------------------------------
       external.semgrep-rules.bash.lang.correctness.unquoted-command-substitution-in-command          
          The result of command substitution $(...) or `...`, if unquoted, is split on whitespace or  
          other separators specified by the IFS variable. You should surround it with double quotes to
          avoid splitting the result.                                                                 
                                                                                                      
           90┆ kill -SIGQUIT $(echo $pids | cut -d' ' -f1)
            ⋮┆----------------------------------------
          100┆ kill -SIGHUP $(echo $pids | cut -d' ' -f1)
            ⋮┆----------------------------------------
       external.semgrep-rules.bash.lang.correctness.unquoted-variable-expansion-in-command            
          Variable expansions must be double-quoted so as to prevent being split into multiple pieces 
          according to whitespace or whichever separator is specified by the IFS variable. If you     
          really wish to split the variable's contents, you may use a variable that starts with an    
          underscore e.g. $_X instead of $X, and semgrep will ignore it. If what you need is an array,
          consider using a proper bash array.                                                         
                                                                                                      
            7┆ echo $@
            ⋮┆----------------------------------------
           20┆ Last4Mac=$(echo $MacAddress | cut -b 9-12)
            ⋮┆----------------------------------------
           78┆ $binary -b -f $conf > /dev/null 2> /dev/null
            ⋮┆----------------------------------------
           84┆ pids=$(pidof $daemon) && echo "($pids) is running." || echo " is stop."
            ⋮┆----------------------------------------
           88┆ pids=$(pidof $daemon) || { echo "$daemon is not running." && return 1; }
            ⋮┆----------------------------------------
           90┆ kill -SIGQUIT $(echo $pids | cut -d' ' -f1)
            ⋮┆----------------------------------------
           93┆ pids=$(pidof $daemon) && killall -9 $daemon && sleep 1 && pids=$(pidof $daemon) && die "ng." || echo     
  "ok."                                                                                                                 
            ⋮┆----------------------------------------
           93┆ pids=$(pidof $daemon) && killall -9 $daemon && sleep 1 && pids=$(pidof $daemon) && die "ng." || echo     
  "ok."                                                                                                                 
            ⋮┆----------------------------------------
           93┆ pids=$(pidof $daemon) && killall -9 $daemon && sleep 1 && pids=$(pidof $daemon) && die "ng." || echo     
  "ok."                                                                                                                 
            ⋮┆----------------------------------------
           99┆ pids=$(pidof $daemon) || { echo "$daemon is not running." && return 1; }
            ⋮┆----------------------------------------
          100┆ kill -SIGHUP $(echo $pids | cut -d' ' -f1)
                                                                                                                        
    /logs/firmware/patool_extraction/DUMP/mtdblock8_unblob_extracted/mtdblock8_extract/0-9650176.squashfs_v4_le_extract/
  etc/rc.d/init.d/managerReset.sh                                                                                       
       external.semgrep-rules.bash.lang.correctness.unquoted-variable-expansion-in-command            
          Variable expansions must be double-quoted so as to prevent being split into multiple pieces 
          according to whitespace or whichever separator is specified by the IFS variable. If you     
          really wish to split the variable's contents, you may use a variable that starts with an    
          underscore e.g. $_X instead of $X, and semgrep will ignore it. If what you need is an array,
          consider using a proper bash array.                                                         
                                                                                                      
            9┆ tdb set $i Status_byte=0
            ⋮┆----------------------------------------
           15┆ tdb set $i Status_byte=0
                                                                                                                        
    /logs/firmware/patool_extraction/DUMP/mtdblock8_unblob_extracted/mtdblock8_extract/0-9650176.squashfs_v4_le_extract/
  etc/rc.d/init.d/mdnsd.sh                                                                                              
       external.semgrep-rules.bash.lang.correctness.unquoted-command-substitution-in-command          
          The result of command substitution $(...) or `...`, if unquoted, is split on whitespace or  
          other separators specified by the IFS variable. You should surround it with double quotes to
          avoid splitting the result.                                                                 
                                                                                                      
           42┆ kill -TERM `cat /var/run/mdnsd.pid`
            ⋮┆----------------------------------------
       external.semgrep-rules.bash.lang.correctness.unquoted-variable-expansion-in-command            
          Variable expansions must be double-quoted so as to prevent being split into multiple pieces 
          according to whitespace or whichever separator is specified by the IFS variable. If you     
          really wish to split the variable's contents, you may use a variable that starts with an    
          underscore e.g. $_X instead of $X, and semgrep will ignore it. If what you need is an array,
          consider using a proper bash array.                                                         
                                                                                                      
           31┆ test -r $DAEMON || exit 0
            ⋮┆----------------------------------------
           52┆ $START $DAEMON
            ⋮┆----------------------------------------
           57┆ echo -n " mdnsd" ; $STOP $DAEMON
            ⋮┆----------------------------------------
           62┆ $STOP $DAEMON
            ⋮┆----------------------------------------
           64┆ $START $DAEMON
                                                                                                                        
    /logs/firmware/patool_extraction/DUMP/mtdblock8_unblob_extracted/mtdblock8_extract/0-9650176.squashfs_v4_le_extract/
  etc/rc.d/init.d/motion_detection_bgm.sh                                                                               
       external.semgrep-rules.bash.lang.correctness.unquoted-command-substitution-in-command          
          The result of command substitution $(...) or `...`, if unquoted, is split on whitespace or  
          other separators specified by the IFS variable. You should surround it with double quotes to
          avoid splitting the result.                                                                 
                                                                                                      
           32┆ kill -s SIGTERM $(echo $pids | cut -d' ' -f1)
            ⋮┆----------------------------------------
           40┆ kill -s SIGUSR2 $(echo $pids | cut -d' ' -f1)
            ⋮┆----------------------------------------
           48┆ kill -s SIGUSR1 $(echo $pids | cut -d' ' -f1)
            ⋮┆----------------------------------------
           56┆ kill -s SIGUSR1 $(echo $pids | cut -d' ' -f1)
            ⋮┆----------------------------------------
           64┆ kill -s SIGUSR1 $(echo $pids | cut -d' ' -f1)
            ⋮┆----------------------------------------
       external.semgrep-rules.bash.lang.correctness.unquoted-variable-expansion-in-command            
          Variable expansions must be double-quoted so as to prevent being split into multiple pieces 
          according to whitespace or whichever separator is specified by the IFS variable. If you     
          really wish to split the variable's contents, you may use a variable that starts with an    
          underscore e.g. $_X instead of $X, and semgrep will ignore it. If what you need is an array,
          consider using a proper bash array.                                                         
                                                                                                      
            7┆ echo $@
            ⋮┆----------------------------------------
           20┆ $binary > /dev/null 2> /dev/null &
            ⋮┆----------------------------------------
           26┆ pids=$(pidof $daemon) && echo "($pids) is running." || echo " is stop."
            ⋮┆----------------------------------------
           30┆ pids=$(pidof $daemon) || { echo "$daemon is not running." && return 1; }
            ⋮┆----------------------------------------
           32┆ kill -s SIGTERM $(echo $pids | cut -d' ' -f1)
            ⋮┆----------------------------------------
           34┆ pids=$(pidof $daemon) && killall -9 $daemon && sleep 1 && pids=$(pidof $daemon) && die "ng." || echo     
  "ok."                                                                                                                 
            ⋮┆----------------------------------------
           34┆ pids=$(pidof $daemon) && killall -9 $daemon && sleep 1 && pids=$(pidof $daemon) && die "ng." || echo     
  "ok."                                                                                                                 
            ⋮┆----------------------------------------
           34┆ pids=$(pidof $daemon) && killall -9 $daemon && sleep 1 && pids=$(pidof $daemon) && die "ng." || echo     
  "ok."                                                                                                                 
            ⋮┆----------------------------------------
           38┆ pids=$(pidof $daemon) || { echo "$daemon is not running." && start && return 1; }
            ⋮┆----------------------------------------
           40┆ kill -s SIGUSR2 $(echo $pids | cut -d' ' -f1)
            ⋮┆----------------------------------------
           45┆ pids=$(pidof $daemon) || { echo "$daemon is not running." && return 1; }
            ⋮┆----------------------------------------
           48┆ kill -s SIGUSR1 $(echo $pids | cut -d' ' -f1)
            ⋮┆----------------------------------------
           53┆ pids=$(pidof $daemon) || { echo "$daemon is not running." && return 1; }
            ⋮┆----------------------------------------
           56┆ kill -s SIGUSR1 $(echo $pids | cut -d' ' -f1)
            ⋮┆----------------------------------------
           61┆ pids=$(pidof $daemon) || { echo "$daemon is not running." && return 1; }
            ⋮┆----------------------------------------
           64┆ kill -s SIGUSR1 $(echo $pids | cut -d' ' -f1)
                                                                                                                        
    /logs/firmware/patool_extraction/DUMP/mtdblock8_unblob_extracted/mtdblock8_extract/0-9650176.squashfs_v4_le_extract/
  etc/rc.d/init.d/myDlinkEvent.sh                                                                                       
       external.semgrep-rules.bash.lang.correctness.unquoted-command-substitution-in-command          
          The result of command substitution $(...) or `...`, if unquoted, is split on whitespace or  
          other separators specified by the IFS variable. You should surround it with double quotes to
          avoid splitting the result.                                                                 
                                                                                                      
           20┆ base64 de `pibinfo MyDlinkPublicKey` > /mydlink/cert/client.crt.pem
            ⋮┆----------------------------------------
           21┆ base64 de `pibinfo MyDlinkPrivateKey` > /mydlink/cert/client.crt.key
            ⋮┆----------------------------------------
           31┆ echo `tdb get TimeZone POSIXTZ_ms` > /etc/TZ
            ⋮┆----------------------------------------
           45┆ kill $(echo $pids)
            ⋮┆----------------------------------------
       external.semgrep-rules.bash.lang.correctness.unquoted-variable-expansion-in-command            
          Variable expansions must be double-quoted so as to prevent being split into multiple pieces 
          according to whitespace or whichever separator is specified by the IFS variable. If you     
          really wish to split the variable's contents, you may use a variable that starts with an    
          underscore e.g. $_X instead of $X, and semgrep will ignore it. If what you need is an array,
          consider using a proper bash array.                                                         
                                                                                                      
            8┆ echo $@
            ⋮┆----------------------------------------
           30┆ $binary --port 3012 > /dev/null 2> /dev/null &
            ⋮┆----------------------------------------
           38┆ /bin/$alexa_proxy &
            ⋮┆----------------------------------------
           44┆ pids=$(pidof $daemon) || { echo "$daemon is not running." && return 1; }
            ⋮┆----------------------------------------
           45┆ kill $(echo $pids)
                                                                                                                        
    /logs/firmware/patool_extraction/DUMP/mtdblock8_unblob_extracted/mtdblock8_extract/0-9650176.squashfs_v4_le_extract/
  etc/rc.d/init.d/network_mfg.sh                                                                                        
       external.semgrep-rules.bash.lang.best-practice.useless-cat                                    
          Useless call to 'cat' in a pipeline. Use '<' and '>' for any command to read from a file or
          write to a file.                                                                           
                                                                                                     
           24┆ cat /proc/bus/usb/devices | grep -q 'Vendor=148f'
            ⋮┆----------------------------------------
       external.semgrep-rules.bash.lang.correctness.unquoted-variable-expansion-in-command            
          Variable expansions must be double-quoted so as to prevent being split into multiple pieces 
          according to whitespace or whichever separator is specified by the IFS variable. If you     
          really wish to split the variable's contents, you may use a variable that starts with an    
          underscore e.g. $_X instead of $X, and semgrep will ignore it. If what you need is an array,
          consider using a proper bash array.                                                         
                                                                                                      
           15┆ echo $@
            ⋮┆----------------------------------------
          130┆ [ "$DNS1_ss" ] && echo nameserver $DNS1_ss
            ⋮┆----------------------------------------
          131┆ [ "$DNS2_ss" ] && echo nameserver $DNS2_ss
            ⋮┆----------------------------------------
          161┆ dumpStatic $1 >> $interfaces
            ⋮┆----------------------------------------
          167┆ dumpLinkLocalIP $1 >> $interfaces
            ⋮┆----------------------------------------
          173┆ dumpDHCP $1 >> $interfaces
            ⋮┆----------------------------------------
          197┆    echo -n
  "\                     
          198┆    pre-up iwpriv apcli0 set           
  ApCliEnable=0                                      
          199┆    pre-up iwpriv apcli0 set                   
  ApCliAuthMode=WEPAUTO                                      
          200┆    pre-up iwpriv apcli0 set                 
  ApCliEncrypType=WEP                                      
          201┆    pre-up iwpriv apcli0 set                                   
  ApCliDefaultKeyID="$WepKeyIndex_byte"                                      
          202┆    pre-up iwpriv apcli0 set ApCliKey"$WepKeyIndex_byte"=$(quote encode "$Key_ls") ||  
  true                                                                                               
          203┆    pre-up iwpriv apcli0 set ApCliSsid=$(quote encode          
  "$ESSID_ms")                                                               
          204┆    pre-up iwpriv apcli0 set           
  ApCliEnable=1                                      
          205┆ "
            ⋮┆----------------------------------------
          209┆    echo -n
  "\                     
          210┆    pre-up iwpriv apcli0 set           
  ApCliEnable=0                                      
          211┆    pre-up iwpriv apcli0 set                   
  ApCliAuthMode=WEPAUTO                                      
          212┆    pre-up iwpriv apcli0 set                 
  ApCliEncrypType=WEP                                      
          213┆    pre-up iwpriv apcli0 set                                   
  ApCliDefaultKeyID="$WepKeyIndex_byte"                                      
          214┆    pre-up iwpriv apcli0 set ApCliKey"$WepKeyIndex_byte"=$(quote encode "$Key_ls") ||  
  true                                                                                               
          215┆    pre-up iwpriv apcli0 set ApCliSsid=$(quote encode          
  "$ESSID_ms")                                                               
          216┆    pre-up iwpriv apcli0 set           
  ApCliEnable=1                                      
          217┆ "
            ⋮┆----------------------------------------
          221┆    echo -n
  "\                     
          222┆    pre-up iwpriv apcli0 set           
  ApCliEnable=0                                      
          223┆    pre-up iwpriv apcli0 set                   
  ApCliAuthMode=WEPAUTO                                      
          224┆    pre-up iwpriv apcli0 set                 
  ApCliEncrypType=WEP                                      
          225┆    pre-up iwpriv apcli0 set                                   
  ApCliDefaultKeyID="$WepKeyIndex_byte"                                      
          226┆    pre-up iwpriv apcli0 set ApCliKey"$WepKeyIndex_byte"=$(quote encode "$Key_ls") ||  
  true                                                                                               
          227┆    pre-up iwpriv apcli0 set ApCliSsid=$(quote encode          
  "$ESSID_ms")                                                               
          228┆    pre-up iwpriv apcli0 set           
  ApCliEnable=1                                      
          229┆ "
            ⋮┆----------------------------------------
          295┆    echo -n
  "\                     
          296┆    pre-up iwpriv ra0 set               
  NetworkType=Infra                                   
          297┆    pre-up iwpriv ra0 set              
  AuthMode=WEPAUTO                                   
          298┆    pre-up iwpriv ra0 set            
  EncrypType=WEP                                   
          299┆    pre-up iwpriv ra0 set                              
  DefaultKeyID="$WepKeyIndex_byte"                                   
          300┆    pre-up iwpriv ra0 set Key"$WepKeyIndex_byte"=$(quote encode "$Key_ls") ||  
  true                                                                                       
          301┆    pre-up iwpriv ra0 set SSID=$(quote encode          
  "$ESSID_ms")                                                       
          302┆ "
            ⋮┆----------------------------------------
          306┆    echo -n
  "\                     
          307┆    pre-up iwpriv ra0 set               
  NetworkType=Infra                                   
          308┆    pre-up iwpriv ra0 set              
  AuthMode=WEPAUTO                                   
          309┆    pre-up iwpriv ra0 set            
  EncrypType=WEP                                   
          310┆    pre-up iwpriv ra0 set                              
  DefaultKeyID="$WepKeyIndex_byte"                                   
          311┆    pre-up iwpriv ra0 set Key"$WepKeyIndex_byte"=$(quote encode "$Key_ls") ||  
  true                                                                                       
          312┆    pre-up iwpriv ra0 set SSID=$(quote encode          
  "$ESSID_ms")                                                       
          313┆ "
            ⋮┆----------------------------------------
          317┆    echo -n
  "\                     
          318┆    pre-up iwpriv ra0 set               
  NetworkType=Infra                                   
          319┆    pre-up iwpriv ra0 set              
  AuthMode=WEPAUTO                                   
          320┆    pre-up iwpriv ra0 set            
  EncrypType=WEP                                   
          321┆    pre-up iwpriv ra0 set                              
  DefaultKeyID="$WepKeyIndex_byte"                                   
          322┆    pre-up iwpriv ra0 set Key"$WepKeyIndex_byte"=$(quote encode "$Key_ls") ||  
  true                                                                                       
          323┆    pre-up iwpriv ra0 set SSID=$(quote encode          
  "$ESSID_ms")                                                       
          324┆ "
            ⋮┆----------------------------------------
          403┆    echo -n
  "\                     
          404┆    pre-up iwpriv wlan0 set               
  NetworkType=Adhoc                                     
          405┆    pre-up iwpriv wlan0 set              
  AuthMode=WEPAUTO                                     
          406┆    pre-up iwpriv wlan0 set            
  EncrypType=WEP                                     
          407┆    pre-up iwpriv wlan0 set                              
  DefaultKeyID="$WepKeyIndex_byte"                                     
          408┆    $([ "$Channel_num" -ne 0 ] && echo -n "pre-up iwpriv wlan0 set                    
  Channel=$Channel_num")                                                                            
          409┆    pre-up iwpriv wlan0 set SSID=$(quote encode          
  "$ESSID_ms")                                                         
          410┆    pre-up iwpriv wlan0 set Key"$WepKeyIndex_byte"=$(quote encode "$Key_ls") ||  
  true                                                                                         
          411┆ "
                                                                                                                        
    /logs/firmware/patool_extraction/DUMP/mtdblock8_unblob_extracted/mtdblock8_extract/0-9650176.squashfs_v4_le_extract/
  etc/rc.d/init.d/network_services.sh                                                                                   
       external.semgrep-rules.bash.lang.correctness.unquoted-variable-expansion-in-command            
          Variable expansions must be double-quoted so as to prevent being split into multiple pieces 
          according to whitespace or whichever separator is specified by the IFS variable. If you     
          really wish to split the variable's contents, you may use a variable that starts with an    
          underscore e.g. $_X instead of $X, and semgrep will ignore it. If what you need is an array,
          consider using a proper bash array.                                                         
                                                                                                      
            4┆ echo $@
            ⋮┆----------------------------------------
           85┆ [ "$pidmDNSResponder" != "" ] && kill -s SIGQUIT $pidmDNSResponder > /dev/null 2> /dev/null
            ⋮┆----------------------------------------
           87┆ killall -9 $daemons > /dev/null 2> /dev/null
            ⋮┆----------------------------------------
           90┆ pids=$(pidof $daemons) || return 0
            ⋮┆----------------------------------------
           91┆ echo $daemons is not stop clearly
            ⋮┆----------------------------------------
           92┆ killall $daemons > /dev/null 2> /dev/null
            ⋮┆----------------------------------------
           96┆ killall -9 $daemons > /dev/null 2> /dev/null
                                                                                                                        
    /logs/firmware/patool_extraction/DUMP/mtdblock8_unblob_extracted/mtdblock8_extract/0-9650176.squashfs_v4_le_extract/
  etc/rc.d/init.d/network_services_ipv6.sh                                                                              
       external.semgrep-rules.bash.lang.correctness.unquoted-variable-expansion-in-command            
          Variable expansions must be double-quoted so as to prevent being split into multiple pieces 
          according to whitespace or whichever separator is specified by the IFS variable. If you     
          really wish to split the variable's contents, you may use a variable that starts with an    
          underscore e.g. $_X instead of $X, and semgrep will ignore it. If what you need is an array,
          consider using a proper bash array.                                                         
                                                                                                      
            4┆ echo $@
            ⋮┆----------------------------------------
           62┆ ip addr add $ipv6_address/$ipv6_prefix dev $ipv6_interface || return 1
            ⋮┆----------------------------------------
           65┆ ipv6_gateway_network_id=$(/sbin/ipv6_get_network_id $ipv6_gateway $ipv6_prefix $ipv6_gateway)
            ⋮┆----------------------------------------
           66┆ ipv6_gateway_network_id_prefix=$(echo $ipv6_gateway_network_id | cut -d ":" -f1)
            ⋮┆----------------------------------------
           68┆ ip -6 route add $ipv6_gateway/$ipv6_prefix dev $ipv6_interface
            ⋮┆----------------------------------------
           74┆ route -A inet6 add ::/0 gw $ipv6_gateway dev $ipv6_interface
            ⋮┆----------------------------------------
           79┆ ip addr del $ipv6_address/$ipv6_prefix dev $ipv6_interface && return 1
            ⋮┆----------------------------------------
          112┆ [ "$pidipv6_network_helper" != "" ] && kill -9 $pidipv6_network_helper > /dev/null 2> /dev/null
            ⋮┆----------------------------------------
          113┆ [ "$piddibbler" != "" ] && kill -s SIGUSR2 $piddibbler > /dev/null 2> /dev/null
                                                                                                                        
    /logs/firmware/patool_extraction/DUMP/mtdblock8_unblob_extracted/mtdblock8_extract/0-9650176.squashfs_v4_le_extract/
  etc/rc.d/init.d/ntpd.sh                                                                                               
       external.semgrep-rules.bash.lang.correctness.unquoted-command-substitution-in-command          
          The result of command substitution $(...) or `...`, if unquoted, is split on whitespace or  
          other separators specified by the IFS variable. You should surround it with double quotes to
          avoid splitting the result.                                                                 
                                                                                                      
           21┆ eval $(echo "Enable_byte DHCPNTPEnable_byte Server_ms Retry_byte" | tdb get NTPClient)
            ⋮┆----------------------------------------
           66┆ kill $(echo $pids | cut -d' ' -f1)
            ⋮┆----------------------------------------
       external.semgrep-rules.bash.lang.correctness.unquoted-variable-expansion-in-command            
          Variable expansions must be double-quoted so as to prevent being split into multiple pieces 
          according to whitespace or whichever separator is specified by the IFS variable. If you     
          really wish to split the variable's contents, you may use a variable that starts with an    
          underscore e.g. $_X instead of $X, and semgrep will ignore it. If what you need is an array,
          consider using a proper bash array.                                                         
                                                                                                      
           12┆ echo $@
            ⋮┆----------------------------------------
           28┆ pids=$(pidof $daemon) && return 1 || return 0
            ⋮┆----------------------------------------
           45┆ $binary -s -r $Retry_byte -f $ntp_from_dhcp &
            ⋮┆----------------------------------------
           47┆ $binary -s -r $Retry_byte -f $conf &
            ⋮┆----------------------------------------
           66┆ kill $(echo $pids | cut -d' ' -f1)
            ⋮┆----------------------------------------
           73┆ killall $daemon
            ⋮┆----------------------------------------
           80┆ killall -9 $daemon
                                                                                                                        
    /logs/firmware/patool_extraction/DUMP/mtdblock8_unblob_extracted/mtdblock8_extract/0-9650176.squashfs_v4_le_extract/
  etc/rc.d/init.d/rdnssd.sh                                                                                             
       external.semgrep-rules.bash.lang.correctness.unquoted-command-substitution-in-command          
          The result of command substitution $(...) or `...`, if unquoted, is split on whitespace or  
          other separators specified by the IFS variable. You should surround it with double quotes to
          avoid splitting the result.                                                                 
                                                                                                      
           41┆ kill $(echo $pids | cut -d' ' -f1)
            ⋮┆----------------------------------------
       external.semgrep-rules.bash.lang.correctness.unquoted-variable-expansion-in-command            
          Variable expansions must be double-quoted so as to prevent being split into multiple pieces 
          according to whitespace or whichever separator is specified by the IFS variable. If you     
          really wish to split the variable's contents, you may use a variable that starts with an    
          underscore e.g. $_X instead of $X, and semgrep will ignore it. If what you need is an array,
          consider using a proper bash array.                                                         
                                                                                                      
            7┆ echo $@
            ⋮┆----------------------------------------
           16┆ pids=$(pidof $daemon) && return 1 || return 0
            ⋮┆----------------------------------------
           26┆ $binary -H /etc/rdnssd/merge-hook -r /tmp/rdnssd-resolv.conf
            ⋮┆----------------------------------------
           41┆ kill $(echo $pids | cut -d' ' -f1)
            ⋮┆----------------------------------------
           48┆ killall $daemon
            ⋮┆----------------------------------------
           55┆ killall -9 $daemon
                                                                                                                        
    /logs/firmware/patool_extraction/DUMP/mtdblock8_unblob_extracted/mtdblock8_extract/0-9650176.squashfs_v4_le_extract/
  etc/rc.d/init.d/rtspd.sh                                                                                              
       external.semgrep-rules.bash.lang.correctness.unquoted-variable-expansion-in-command            
          Variable expansions must be double-quoted so as to prevent being split into multiple pieces 
          according to whitespace or whichever separator is specified by the IFS variable. If you     
          really wish to split the variable's contents, you may use a variable that starts with an    
          underscore e.g. $_X instead of $X, and semgrep will ignore it. If what you need is an array,
          consider using a proper bash array.                                                         
                                                                                                      
            7┆ echo $@
            ⋮┆----------------------------------------
           16┆ $binary > /dev/null 2> /dev/null &
            ⋮┆----------------------------------------
           23┆ pids=$(pidof $daemon) && echo "($pids) is running." || echo " is stop."
            ⋮┆----------------------------------------
           27┆ pids=$(pidof $daemon) || { echo "$daemon is not running." && return 1; }
            ⋮┆----------------------------------------
           29┆ kill $pids
            ⋮┆----------------------------------------
           31┆ pids=$(pidof $daemon) && killall -9 $daemon && sleep 1 && pids=$(pidof $daemon) && die "ng." || echo     
  "ok."                                                                                                                 
            ⋮┆----------------------------------------
           31┆ pids=$(pidof $daemon) && killall -9 $daemon && sleep 1 && pids=$(pidof $daemon) && die "ng." || echo     
  "ok."                                                                                                                 
            ⋮┆----------------------------------------
           31┆ pids=$(pidof $daemon) && killall -9 $daemon && sleep 1 && pids=$(pidof $daemon) && die "ng." || echo     
  "ok."                                                                                                                 
                                                                                                                        
    /logs/firmware/patool_extraction/DUMP/mtdblock8_unblob_extracted/mtdblock8_extract/0-9650176.squashfs_v4_le_extract/
  etc/rc.d/init.d/services.sh                                                                                           
       external.semgrep-rules.bash.lang.correctness.unquoted-variable-expansion-in-command            
          Variable expansions must be double-quoted so as to prevent being split into multiple pieces 
          according to whitespace or whichever separator is specified by the IFS variable. If you     
          really wish to split the variable's contents, you may use a variable that starts with an    
          underscore e.g. $_X instead of $X, and semgrep will ignore it. If what you need is an array,
          consider using a proper bash array.                                                         
                                                                                                      
            4┆ echo $@
            ⋮┆----------------------------------------
           14┆ [ -x $prefix/etc/rc.d/init.d/vcd.sh ] && $prefix/etc/rc.d/init.d/vcd.sh start $prefix
            ⋮┆----------------------------------------
           15┆ [ -x $prefix/etc/rc.d/init.d/acd.sh ] && $prefix/etc/rc.d/init.d/acd.sh start $prefix
            ⋮┆----------------------------------------
           16┆ [ -x $prefix/etc/rc.d/init.d/avcd.sh ] && $prefix/etc/rc.d/init.d/avcd.sh start $prefix
            ⋮┆----------------------------------------
           18┆ [ -x $prefix/etc/rc.d/init.d/db_analysis.sh ] && $prefix/etc/rc.d/init.d/db_analysis.sh start $prefix
            ⋮┆----------------------------------------
           19┆ [ -x $prefix/etc/rc.d/init.d/rtpd.sh ] && $prefix/etc/rc.d/init.d/rtpd.sh start $prefix
            ⋮┆----------------------------------------
           20┆ [ -x $prefix/etc/rc.d/init.d/rtspd.sh ] && $prefix/etc/rc.d/init.d/rtspd.sh start $prefix
            ⋮┆----------------------------------------
           21┆ [ -x $prefix/etc/rc.d/init.d/Onvif_mcast.sh ] && $prefix/etc/rc.d/init.d/Onvif_mcast.sh start $prefix
            ⋮┆----------------------------------------
           22┆ [ -x $prefix/etc/rc.d/init.d/Ruler.sh ] && $prefix/etc/rc.d/init.d/Ruler.sh start $prefix
            ⋮┆----------------------------------------
           23┆ [ -x $prefix/etc/rc.d/init.d/dbus-daemon.sh ] && $prefix/etc/rc.d/init.d/dbus-daemon.sh start $prefix
            ⋮┆----------------------------------------
           24┆ [ -x $prefix/etc/rc.d/init.d/bluetoothd.sh ] && $prefix/etc/rc.d/init.d/bluetoothd.sh start $prefix
            ⋮┆----------------------------------------
           27┆ [ -x $prefix/etc/rc.d/init.d/finderd.sh ] && $prefix/etc/rc.d/init.d/finderd.sh start $prefix
            ⋮┆----------------------------------------
           28┆ [ -x $prefix/etc/rc.d/init.d/mDNSResponder.sh ] && $prefix/etc/rc.d/init.d/mDNSResponder.sh start $prefix
            ⋮┆----------------------------------------
           29┆ [ -x $prefix/etc/rc.d/init.d/upnp_av.sh ] && $prefix/etc/rc.d/init.d/upnp_av.sh start $prefix
            ⋮┆----------------------------------------
           30┆ [ -x $prefix/etc/rc.d/init.d/upnp_av_ipv6.sh ] && $prefix/etc/rc.d/init.d/upnp_av_ipv6.sh start $prefix
            ⋮┆----------------------------------------
           31┆ [ -x $prefix/etc/rc.d/init.d/discovery.sh ] && $prefix/etc/rc.d/init.d/discovery.sh start $prefix
            ⋮┆----------------------------------------
           32┆ [ -x $prefix/etc/rc.d/init.d/ddnsUpdater.sh ] && $prefix/etc/rc.d/init.d/ddnsUpdater.sh start $prefix
            ⋮┆----------------------------------------
           33┆ [ -x $prefix/etc/rc.d/init.d/lld2d.sh ] && $prefix/etc/rc.d/init.d/lld2d.sh start $prefix
            ⋮┆----------------------------------------
           34┆ [ -x $prefix/etc/rc.d/init.d/ntpd.sh ] && $prefix/etc/rc.d/init.d/ntpd.sh start $prefix
            ⋮┆----------------------------------------
           41┆ [ -x $prefix/etc/rc.d/init.d/vcd.sh ] && $prefix/etc/rc.d/init.d/vcd.sh status $prefix
            ⋮┆----------------------------------------
           42┆ [ -x $prefix/etc/rc.d/init.d/acd.sh ] && $prefix/etc/rc.d/init.d/acd.sh status $prefix
            ⋮┆----------------------------------------
           43┆ [ -x $prefix/etc/rc.d/init.d/avcd.sh ] && $prefix/etc/rc.d/init.d/avcd.sh status $prefix
            ⋮┆----------------------------------------
           44┆ [ -x $prefix/etc/rc.d/init.d/db_analysis.sh ] && $prefix/etc/rc.d/init.d/db_analysis.sh status $prefix
            ⋮┆----------------------------------------
           45┆ [ -x $prefix/etc/rc.d/init.d/rtpd.sh ] && $prefix/etc/rc.d/init.d/rtpd.sh status $prefix
            ⋮┆----------------------------------------
           46┆ [ -x $prefix/etc/rc.d/init.d/rtspd.sh ] && $prefix/etc/rc.d/init.d/rtspd.sh status $prefix
            ⋮┆----------------------------------------
           47┆ [ -x $prefix/etc/rc.d/init.d/Onvif_mcast.sh ] && $prefix/etc/rc.d/init.d/Onvif_mcast.sh status $prefix
            ⋮┆----------------------------------------
           48┆ [ -x $prefix/etc/rc.d/init.d/Ruler.sh ] && $prefix/etc/rc.d/init.d/Ruler.sh status $prefix
            ⋮┆----------------------------------------
           49┆ [ -x $prefix/etc/rc.d/init.d/dbus-daemon.sh ] && $prefix/etc/rc.d/init.d/dbus-daemon.sh status $prefix
            ⋮┆----------------------------------------
           50┆ [ -x $prefix/etc/rc.d/init.d/bluetoothd.sh ] && $prefix/etc/rc.d/init.d/bluetoothd.sh status $prefix
            ⋮┆----------------------------------------
           53┆ [ -x $prefix/etc/rc.d/init.d/finderd.sh ] && $prefix/etc/rc.d/init.d/finderd.sh status $prefix
            ⋮┆----------------------------------------
           54┆ [ -x $prefix/etc/rc.d/init.d/mDNSResponder.sh ] && $prefix/etc/rc.d/init.d/mDNSResponder.sh status       
  $prefix                                                                                                               
            ⋮┆----------------------------------------
           55┆ [ -x $prefix/etc/rc.d/init.d/upnp_av.sh ] && $prefix/etc/rc.d/init.d/upnp_av.sh status $prefix
            ⋮┆----------------------------------------
           56┆ [ -x $prefix/etc/rc.d/init.d/upnp_av_ipv6.sh ] && $prefix/etc/rc.d/init.d/upnp_av_ipv6.sh status $prefix
            ⋮┆----------------------------------------
           57┆ [ -x $prefix/etc/rc.d/init.d/discovery.sh ] && $prefix/etc/rc.d/init.d/discovery.sh status $prefix
            ⋮┆----------------------------------------
           58┆ [ -x $prefix/etc/rc.d/init.d/ddnsUpdater.sh ] && $prefix/etc/rc.d/init.d/ddnsUpdater.sh status $prefix
            ⋮┆----------------------------------------
           59┆ [ -x $prefix/etc/rc.d/init.d/lld2d.sh ] && $prefix/etc/rc.d/init.d/lld2d.sh status $prefix
            ⋮┆----------------------------------------
           60┆ [ -x $prefix/etc/rc.d/init.d/ntpd.sh ] && $prefix/etc/rc.d/init.d/ntpd.sh status $prefix
            ⋮┆----------------------------------------
           88┆ [ -x $prefix/etc/rc.d/init.d/lld2d.sh ] && $prefix/etc/rc.d/init.d/lld2d.sh stop $prefix
            ⋮┆----------------------------------------
           89┆ [ -x $prefix/etc/rc.d/init.d/discovery.sh ] && $prefix/etc/rc.d/init.d/discovery.sh stop $prefix
            ⋮┆----------------------------------------
           90┆ [ -x $prefix/etc/rc.d/init.d/bluetoothd.sh ] && $prefix/etc/rc.d/init.d/bluetoothd.sh stop $prefix
            ⋮┆----------------------------------------
           91┆ [ -x $prefix/etc/rc.d/init.d/dbus-daemon.sh ] && $prefix/etc/rc.d/init.d/dbus-daemon.sh stop $prefix
            ⋮┆----------------------------------------
           93┆ echo Daemons are killed: $daemons ...
            ⋮┆----------------------------------------
           94┆ killall $daemons
            ⋮┆----------------------------------------
           97┆ pids=$(pidof $daemons) || return 0
            ⋮┆----------------------------------------
           98┆ echo $daemons is not stop clear
            ⋮┆----------------------------------------
           99┆ killall $daemons
            ⋮┆----------------------------------------
          103┆ killall -9 $daemons
                                                                                                                        
    /logs/firmware/patool_extraction/DUMP/mtdblock8_unblob_extracted/mtdblock8_extract/0-9650176.squashfs_v4_le_extract/
  etc/rc.d/init.d/trservices.sh                                                                                         
       external.semgrep-rules.bash.lang.correctness.unquoted-variable-expansion-in-command            
          Variable expansions must be double-quoted so as to prevent being split into multiple pieces 
          according to whitespace or whichever separator is specified by the IFS variable. If you     
          really wish to split the variable's contents, you may use a variable that starts with an    
          underscore e.g. $_X instead of $X, and semgrep will ignore it. If what you need is an array,
          consider using a proper bash array.                                                         
                                                                                                      
            4┆ echo $@
                                                                                                                        
    /logs/firmware/patool_extraction/DUMP/mtdblock8_unblob_extracted/mtdblock8_extract/0-9650176.squashfs_v4_le_extract/
  etc/rc.d/init.d/tz_dst.sh                                                                                             
       external.semgrep-rules.bash.lang.correctness.unquoted-command-substitution-in-command          
          The result of command substitution $(...) or `...`, if unquoted, is split on whitespace or  
          other separators specified by the IFS variable. You should surround it with double quotes to
          avoid splitting the result.                                                                 
                                                                                                      
           30┆ kill $(echo $pids | cut -d' ' -f1)
            ⋮┆----------------------------------------
       external.semgrep-rules.bash.lang.correctness.unquoted-variable-expansion-in-command            
          Variable expansions must be double-quoted so as to prevent being split into multiple pieces 
          according to whitespace or whichever separator is specified by the IFS variable. If you     
          really wish to split the variable's contents, you may use a variable that starts with an    
          underscore e.g. $_X instead of $X, and semgrep will ignore it. If what you need is an array,
          consider using a proper bash array.                                                         
                                                                                                      
            7┆ echo $@
            ⋮┆----------------------------------------
           19┆ $binary > /dev/null 2> /dev/null &
            ⋮┆----------------------------------------
           28┆ pids=$(pidof $app) || { echo "$app is not running." && return 1; }
            ⋮┆----------------------------------------
           30┆ kill $(echo $pids | cut -d' ' -f1)
            ⋮┆----------------------------------------
           32┆ pids=$(pidof $app) && killall -9 $app && sleep 1 && pids=$(pidof $app) && die "ng." || echo "ok."
            ⋮┆----------------------------------------
           32┆ pids=$(pidof $app) && killall -9 $app && sleep 1 && pids=$(pidof $app) && die "ng." || echo "ok."
            ⋮┆----------------------------------------
           32┆ pids=$(pidof $app) && killall -9 $app && sleep 1 && pids=$(pidof $app) && die "ng." || echo "ok."
                                                                                                                        
    /logs/firmware/patool_extraction/DUMP/mtdblock8_unblob_extracted/mtdblock8_extract/0-9650176.squashfs_v4_le_extract/
  etc/rc.d/init.d/watchDog.sh                                                                                           
       external.semgrep-rules.bash.lang.correctness.unquoted-command-substitution-in-command          
          The result of command substitution $(...) or `...`, if unquoted, is split on whitespace or  
          other separators specified by the IFS variable. You should surround it with double quotes to
          avoid splitting the result.                                                                 
                                                                                                      
           32┆ kill $(echo $pids | cut -d' ' -f1)
            ⋮┆----------------------------------------
       external.semgrep-rules.bash.lang.correctness.unquoted-variable-expansion-in-command            
          Variable expansions must be double-quoted so as to prevent being split into multiple pieces 
          according to whitespace or whichever separator is specified by the IFS variable. If you     
          really wish to split the variable's contents, you may use a variable that starts with an    
          underscore e.g. $_X instead of $X, and semgrep will ignore it. If what you need is an array,
          consider using a proper bash array.                                                         
                                                                                                      
            7┆ echo $@
            ⋮┆----------------------------------------
           20┆ $binary > /dev/null 2> /dev/null &
            ⋮┆----------------------------------------
           26┆ pids=$(pidof $daemon) && echo "($pids) is running." || echo " is stop."
            ⋮┆----------------------------------------
           30┆ pids=$(pidof $daemon) || { echo "$daemon is not running." && return 1; }
            ⋮┆----------------------------------------
           32┆ kill $(echo $pids | cut -d' ' -f1)
            ⋮┆----------------------------------------
           34┆ pids=$(pidof $daemon) && killall -9 $daemon && sleep 1 && pids=$(pidof $daemon) && die "ng." || echo     
  "ok."                                                                                                                 
            ⋮┆----------------------------------------
           34┆ pids=$(pidof $daemon) && killall -9 $daemon && sleep 1 && pids=$(pidof $daemon) && die "ng." || echo     
  "ok."                                                                                                                 
            ⋮┆----------------------------------------
           34┆ pids=$(pidof $daemon) && killall -9 $daemon && sleep 1 && pids=$(pidof $daemon) && die "ng." || echo     
  "ok."                                                                                                                 
            ⋮┆----------------------------------------
           38┆ pids=$(pidof $daemon) || { echo "$daemon is not running." && return 1; }
                                                                                                                        
    /logs/firmware/patool_extraction/DUMP/mtdblock8_unblob_extracted/mtdblock8_extract/0-9650176.squashfs_v4_le_extract/
  etc/rc.d/init.d/wifiAutoReconnect.sh                                                                                  
       external.semgrep-rules.bash.lang.correctness.unquoted-command-substitution-in-command          
          The result of command substitution $(...) or `...`, if unquoted, is split on whitespace or  
          other separators specified by the IFS variable. You should surround it with double quotes to
          avoid splitting the result.                                                                 
                                                                                                      
           29┆ kill $(echo $pids | cut -d' ' -f1)
            ⋮┆----------------------------------------
       external.semgrep-rules.bash.lang.correctness.unquoted-variable-expansion-in-command            
          Variable expansions must be double-quoted so as to prevent being split into multiple pieces 
          according to whitespace or whichever separator is specified by the IFS variable. If you     
          really wish to split the variable's contents, you may use a variable that starts with an    
          underscore e.g. $_X instead of $X, and semgrep will ignore it. If what you need is an array,
          consider using a proper bash array.                                                         
                                                                                                      
            7┆ echo $@
            ⋮┆----------------------------------------
           16┆ $binary  > /dev/null 2> /dev/null &
            ⋮┆----------------------------------------
           22┆ pids=$(pidof $daemon) && echo "($pids) is running." || echo " is stop."
            ⋮┆----------------------------------------
           26┆ pids=$(pidof $daemon) || { echo "$daemon is not running." && return 1; }
            ⋮┆----------------------------------------
           29┆ kill $(echo $pids | cut -d' ' -f1)
            ⋮┆----------------------------------------
           31┆ pids=$(pidof $daemon) || break
            ⋮┆----------------------------------------
           33┆ pids=$(pidof $daemon) && killall -9 $daemon && sleep 1 && pids=$(pidof $daemon) && die "ng." || echo     
  "ok."                                                                                                                 
            ⋮┆----------------------------------------
           33┆ pids=$(pidof $daemon) && killall -9 $daemon && sleep 1 && pids=$(pidof $daemon) && die "ng." || echo     
  "ok."                                                                                                                 
            ⋮┆----------------------------------------
           33┆ pids=$(pidof $daemon) && killall -9 $daemon && sleep 1 && pids=$(pidof $daemon) && die "ng." || echo     
  "ok."                                                                                                                 
                                                                                                                        
    /logs/firmware/patool_extraction/DUMP/mtdblock8_unblob_extracted/mtdblock8_extract/0-9650176.squashfs_v4_le_extract/
  etc/rc.d/rcS.d/S22bluetoothd.sh                                                                                       
       external.semgrep-rules.bash.lang.correctness.unquoted-command-substitution-in-command          
          The result of command substitution $(...) or `...`, if unquoted, is split on whitespace or  
          other separators specified by the IFS variable. You should surround it with double quotes to
          avoid splitting the result.                                                                 
                                                                                                      
           55┆ kill $(echo $pids | cut -d' ' -f1)
            ⋮┆----------------------------------------
       external.semgrep-rules.bash.lang.correctness.unquoted-variable-expansion-in-command            
          Variable expansions must be double-quoted so as to prevent being split into multiple pieces 
          according to whitespace or whichever separator is specified by the IFS variable. If you     
          really wish to split the variable's contents, you may use a variable that starts with an    
          underscore e.g. $_X instead of $X, and semgrep will ignore it. If what you need is an array,
          consider using a proper bash array.                                                         
                                                                                                      
            7┆ echo $@
            ⋮┆----------------------------------------
           16┆ pids=$(pidof $daemon) && return 1 || return 0
            ⋮┆----------------------------------------
           38┆ $binary -d -n -E -p "gatt, gatt_example" -q "$pincode" -s > /dev/null 2>&1 &
            ⋮┆----------------------------------------
           55┆ kill $(echo $pids | cut -d' ' -f1)
            ⋮┆----------------------------------------
           62┆ killall $daemon
            ⋮┆----------------------------------------
           69┆ killall -9 $daemon
                                                                                                                        
    /logs/firmware/patool_extraction/DUMP/mtdblock8_unblob_extracted/mtdblock8_extract/0-9650176.squashfs_v4_le_extract/
  sbin/automount.sh                                                                                                     
       external.semgrep-rules.bash.lang.correctness.unquoted-variable-expansion-in-command            
          Variable expansions must be double-quoted so as to prevent being split into multiple pieces 
          according to whitespace or whichever separator is specified by the IFS variable. If you     
          really wish to split the variable's contents, you may use a variable that starts with an    
          underscore e.g. $_X instead of $X, and semgrep will ignore it. If what you need is an array,
          consider using a proper bash array.                                                         
                                                                                                      
           13┆ M=`mount | grep $1`
            ⋮┆----------------------------------------
           16┆ $MKDIR -p "$MOUNT_PATH"
            ⋮┆----------------------------------------
           18┆ $MOUNT -t vfat -o fmask=0000,dmask=0000,allow_utime=0022 /dev/$1 "$MOUNT_PATH" && echo -n "/dev/$1" >    
  /tmp/sddev                                                                                                            
            ⋮┆----------------------------------------
           20┆ [ ! -d $MOUNT_PATH/$model ] && $MKDIR $MOUNT_PATH/$model
            ⋮┆----------------------------------------
           22┆ [ $model != "" ] && ln -sf $MOUNT_PATH/$model $VOLUME_PATH
            ⋮┆----------------------------------------
           25┆ $UMOUNT -lf "$MOUNT_PATH" && rm /tmp/sddev
            ⋮┆----------------------------------------
           26┆ rm $VOLUME_PATH
            ⋮┆----------------------------------------
           30┆ test=$(echo $1 | grep -re "mmcblk[0-9]$")
            ⋮┆----------------------------------------
           33┆ domount ${test}p1
            ⋮┆----------------------------------------
           37┆ domount $test
                                                                                                                        
    /logs/firmware/patool_extraction/DUMP/mtdblock8_unblob_extracted/mtdblock8_extract/0-9650176.squashfs_v4_le_extract/
  sbin/fw_decrypt.sh                                                                                                    
       external.semgrep-rules.bash.lang.best-practice.useless-cat                                    
          Useless call to 'cat' in a pipeline. Use '<' and '>' for any command to read from a file or
          write to a file.                                                                           
                                                                                                     
            4┆ target=$(cat $p/certificate.info | grep "Target" | cut -d":" -f2)
            ⋮┆----------------------------------------
            4┆ target=$(cat $p/certificate.info | grep "Target" | cut -d":" -f2)
            ⋮┆----------------------------------------
       external.semgrep-rules.bash.lang.correctness.unquoted-command-substitution-in-command          
          The result of command substitution $(...) or `...`, if unquoted, is split on whitespace or  
          other separators specified by the IFS variable. You should surround it with double quotes to
          avoid splitting the result.                                                                 
                                                                                                      
            8┆ eval $(cat $p/keysuit)
            ⋮┆----------------------------------------
       external.semgrep-rules.bash.lang.correctness.unquoted-variable-expansion-in-command            
          Variable expansions must be double-quoted so as to prevent being split into multiple pieces 
          according to whitespace or whichever separator is specified by the IFS variable. If you     
          really wish to split the variable's contents, you may use a variable that starts with an    
          underscore e.g. $_X instead of $X, and semgrep will ignore it. If what you need is an array,
          consider using a proper bash array.                                                         
                                                                                                      
            4┆ target=$(cat $p/certificate.info | grep "Target" | cut -d":" -f2)
            ⋮┆----------------------------------------
            5┆ openssl rsautl -decrypt -in $p/keysuit.enc -inkey "$1" -out $p/keysuit || ret=1
            ⋮┆----------------------------------------
            8┆ eval $(cat $p/keysuit)
            ⋮┆----------------------------------------
            9┆ openssl aes-256-cbc -k $key -iv $iv -S $salt -d -in $p/$target.aes -out "$2" || ret=1
            ⋮┆----------------------------------------
           10┆ chmod u+x $2
            ⋮┆----------------------------------------
           11┆ exit $ret
                                                                                                                        
    /logs/firmware/patool_extraction/DUMP/mtdblock8_unblob_extracted/mtdblock8_extract/0-9650176.squashfs_v4_le_extract/
  sbin/fw_sign_verify.sh                                                                                                
       external.semgrep-rules.bash.lang.best-practice.useless-cat                                    
          Useless call to 'cat' in a pipeline. Use '<' and '>' for any command to read from a file or
          write to a file.                                                                           
                                                                                                     
            8┆ target=$(cat $p/certificate.info | grep "Target" | cut -d":" -f2)
            ⋮┆----------------------------------------
            8┆ target=$(cat $p/certificate.info | grep "Target" | cut -d":" -f2)
            ⋮┆----------------------------------------
       external.semgrep-rules.bash.lang.correctness.unquoted-variable-expansion-in-command            
          Variable expansions must be double-quoted so as to prevent being split into multiple pieces 
          according to whitespace or whichever separator is specified by the IFS variable. If you     
          really wish to split the variable's contents, you may use a variable that starts with an    
          underscore e.g. $_X instead of $X, and semgrep will ignore it. If what you need is an array,
          consider using a proper bash array.                                                         
                                                                                                      
            4┆ mkdir $p
            ⋮┆----------------------------------------
            5┆ tar -xf "$1" certificate.info -C $p
            ⋮┆----------------------------------------
            6┆ tar -xf "$1" keysuit.enc -C $p
            ⋮┆----------------------------------------
            7┆ tar -xf "$1" sign.sha1.enc -C $p
            ⋮┆----------------------------------------
            8┆ target=$(cat $p/certificate.info | grep "Target" | cut -d":" -f2)
            ⋮┆----------------------------------------
            9┆ tar -xf "$1" $target.aes -C $p
            ⋮┆----------------------------------------
           10┆ file=$(echo $target | cut -d'.' -f 0)
            ⋮┆----------------------------------------
           11┆ tar -xOf "$1" $file.aes | openssl dgst -sha256 | cut -d' ' -f2 > $p/$file.sha1
            ⋮┆----------------------------------------
           12┆ sum1=`cat $p/$target.aes $p/keysuit.enc $p/certificate.info $p/$file.sha1 | openssl dgst -sha256 | cut   
  -d' ' -f2`                                                                                                            
            ⋮┆----------------------------------------
           16┆ openssl rsautl -verify -inkey "$2" -pubin -in $p/sign.sha1.enc > $p/sign.sha1
            ⋮┆----------------------------------------
           18┆ sum2=`cat $p/sign.sha1`
            ⋮┆----------------------------------------
           20┆ echo $sum1
            ⋮┆----------------------------------------
           21┆ echo $sum2
                                                                                                                        
    /logs/firmware/patool_extraction/DUMP/mtdblock8_unblob_extracted/mtdblock8_extract/0-9650176.squashfs_v4_le_extract/
  sbin/subscriptionManager.sh                                                                                           
       external.semgrep-rules.bash.lang.correctness.unquoted-command-substitution-in-command          
          The result of command substitution $(...) or `...`, if unquoted, is split on whitespace or  
          other separators specified by the IFS variable. You should surround it with double quotes to
          avoid splitting the result.                                                                 
                                                                                                      
           27┆ kill $(echo $pids | cut -d' ' -f1)
            ⋮┆----------------------------------------
           36┆ kill -s SIGUSR1 $(echo $pids | cut -d' ' -f1)
            ⋮┆----------------------------------------
           43┆ kill -s SIGUSR2 $(echo $pids | cut -d' ' -f1)
            ⋮┆----------------------------------------
       external.semgrep-rules.bash.lang.correctness.unquoted-variable-expansion-in-command            
          Variable expansions must be double-quoted so as to prevent being split into multiple pieces 
          according to whitespace or whichever separator is specified by the IFS variable. If you     
          really wish to split the variable's contents, you may use a variable that starts with an    
          underscore e.g. $_X instead of $X, and semgrep will ignore it. If what you need is an array,
          consider using a proper bash array.                                                         
                                                                                                      
            6┆ echo $@
            ⋮┆----------------------------------------
           20┆ $binary > /dev/null 2> /dev/null &
            ⋮┆----------------------------------------
           25┆ pids=$(pidof $daemon) || { echo "$daemon is not running." && return 1; }
            ⋮┆----------------------------------------
           27┆ kill $(echo $pids | cut -d' ' -f1)
            ⋮┆----------------------------------------
           29┆ pids=$(pidof $daemon) && sleep 2
            ⋮┆----------------------------------------
           30┆ pids=$(pidof $daemon) && killall -9 $daemon && sleep 1 && pids=$(pidof $daemon) && die "ng." || echo     
  "stop $daemon ok."                                                                                                    
            ⋮┆----------------------------------------
           30┆ pids=$(pidof $daemon) && killall -9 $daemon && sleep 1 && pids=$(pidof $daemon) && die "ng." || echo     
  "stop $daemon ok."                                                                                                    
            ⋮┆----------------------------------------
           30┆ pids=$(pidof $daemon) && killall -9 $daemon && sleep 1 && pids=$(pidof $daemon) && die "ng." || echo     
  "stop $daemon ok."                                                                                                    
            ⋮┆----------------------------------------
           34┆ pids=$(pidof $daemon) || { echo "$daemon is not running." && return 1; }
            ⋮┆----------------------------------------
           36┆ kill -s SIGUSR1 $(echo $pids | cut -d' ' -f1)
            ⋮┆----------------------------------------
           41┆ pids=$(pidof $daemon) || { echo "$daemon is not running." && return 1; }
            ⋮┆----------------------------------------
           43┆ kill -s SIGUSR2 $(echo $pids | cut -d' ' -f1)
                                                                                                                        
    /logs/firmware/patool_extraction/DUMP/mtdblock8_unblob_extracted/mtdblock8_extract/0-9650176.squashfs_v4_le_extract/
  sbin/udhcpc.sh                                                                                                        
       external.semgrep-rules.bash.lang.correctness.unquoted-command-substitution-in-command          
          The result of command substitution $(...) or `...`, if unquoted, is split on whitespace or  
          other separators specified by the IFS variable. You should surround it with double quotes to
          avoid splitting the result.                                                                 
                                                                                                      
           24┆ [ -f /tmp/wifi-led.pid ] && kill -USR1 `cat /tmp/wifi-led.pid`
            ⋮┆----------------------------------------
           35┆ eval $(dumpNetworkKeys | tdb get Network)
            ⋮┆----------------------------------------
           54┆ eval $(dumpNetworkKeys | tdb get Network)
            ⋮┆----------------------------------------
          135┆ [ $interface = "wlan0" ] && kill -USR1 `cat /tmp/wifiAutoReconnect.pid`
            ⋮┆----------------------------------------
       external.semgrep-rules.bash.lang.correctness.unquoted-variable-expansion-in-command            
          Variable expansions must be double-quoted so as to prevent being split into multiple pieces 
          according to whitespace or whichever separator is specified by the IFS variable. If you     
          really wish to split the variable's contents, you may use a variable that starts with an    
          underscore e.g. $_X instead of $X, and semgrep will ignore it. If what you need is an array,
          consider using a proper bash array.                                                         
                                                                                                      
           40┆ /sbin/ifconfig $interface 0.0.0.0
            ⋮┆----------------------------------------
           46┆ /sbin/ifconfig $interface $Address_ss netmask $Netmask_ss
            ⋮┆----------------------------------------
           47┆ route add default gw $Gateway_ss $interface
            ⋮┆----------------------------------------
           58┆ /sbin/ifconfig $interface $ip $BROADCAST $NETMASK
            ⋮┆----------------------------------------
           64┆ printf "ip='%s'\n" $ip > /tmp/dhcptemp.log.new
            ⋮┆----------------------------------------
           65┆ printf "interface='%s'\n" $interface >> /tmp/dhcptemp.log.new
            ⋮┆----------------------------------------
           66┆ printf "broadcast='%s'\n" $broadcast >> /tmp/dhcptemp.log.new
            ⋮┆----------------------------------------
           67┆ printf "subnet='%s'\n" $subnet >> /tmp/dhcptemp.log.new
            ⋮┆----------------------------------------
           68┆ printf "router='%s'\n" $router >> /tmp/dhcptemp.log.new
            ⋮┆----------------------------------------
           69┆ printf "meteric='%s'\n" $metric >> /tmp/dhcptemp.log.new
            ⋮┆----------------------------------------
           70┆ printf "domain='%s'\n" $domain >> /tmp/dhcptemp.log.new
            ⋮┆----------------------------------------
           71┆ printf "dns='%s'\n" $dns >> /tmp/dhcptemp.log.new
            ⋮┆----------------------------------------
           96┆ while route del default gw 0.0.0.0 dev $interface ; do
            ⋮┆----------------------------------------
          102┆ metric=`expr $metric + 1`
            ⋮┆----------------------------------------
          103┆ route add default gw $i dev $interface metric $metric
            ⋮┆----------------------------------------
          112┆ /sbin/ifconfig $interface $Address_ss netmask $Netmask_ss up
            ⋮┆----------------------------------------
          113┆ while route del default gw 0.0.0.0 dev $interface ; do
            ⋮┆----------------------------------------
          116┆ route add default gw $Gateway_ss dev $interface
            ⋮┆----------------------------------------
          122┆ [ -n "$domain" ] && echo search $domain >> $RESOLV_CONF
            ⋮┆----------------------------------------
          125┆ echo nameserver $i >> $RESOLV_CONF
                                                                                                                        
    /logs/firmware/patool_extraction/DUMP/mtdblock8_unblob_extracted/mtdblock8_extract/0-9650176.squashfs_v4_le_extract/
  sbin/wpsApCheck.sh                                                                                                    
       external.semgrep-rules.bash.lang.correctness.unquoted-variable-expansion-in-command            
          Variable expansions must be double-quoted so as to prevent being split into multiple pieces 
          according to whitespace or whichever separator is specified by the IFS variable. If you     
          really wish to split the variable's contents, you may use a variable that starts with an    
          underscore e.g. $_X instead of $X, and semgrep will ignore it. If what you need is an array,
          consider using a proper bash array.                                                         
                                                                                                      
           31┆ kill -SIGUSR1 $udhcpd_pid
            ⋮┆----------------------------------------
           33┆ lease_str=`/usr/bin/dumpleases -f /tmp/udhcpd.leases | grep $ip_mask`
                                                                                                                        
    /logs/firmware/patool_extraction/DUMP/mtdblock8_unblob_extracted/mtdblock8_extract/0-9650176.squashfs_v4_le_extract/
  sbin/write_mac_rtl8723bu.sh                                                                                           
       external.semgrep-rules.bash.lang.correctness.unquoted-command-substitution-in-command          
          The result of command substitution $(...) or `...`, if unquoted, is split on whitespace or  
          other separators specified by the IFS variable. You should surround it with double quotes to
          avoid splitting the result.                                                                 
                                                                                                      
           41┆ printf "pibinfo MacAddress:\t%s\n" `pibinfo MacAddress`
            ⋮┆----------------------------------------
       external.semgrep-rules.bash.lang.correctness.unquoted-variable-expansion-in-command            
          Variable expansions must be double-quoted so as to prevent being split into multiple pieces 
          according to whitespace or whichever separator is specified by the IFS variable. If you     
          really wish to split the variable's contents, you may use a variable that starts with an    
          underscore e.g. $_X instead of $X, and semgrep will ignore it. If what you need is an array,
          consider using a proper bash array.                                                         
                                                                                                      
            4┆ mac_b1=$(echo $mac_addr | cut -d':' -f1)
            ⋮┆----------------------------------------
            5┆ mac_b2=$(echo $mac_addr | cut -d':' -f2)
            ⋮┆----------------------------------------
            6┆ mac_b3=$(echo $mac_addr | cut -d':' -f3)
            ⋮┆----------------------------------------
            7┆ mac_b4=$(echo $mac_addr | cut -d':' -f4)
            ⋮┆----------------------------------------
            8┆ mac_b5=$(echo $mac_addr | cut -d':' -f5)
            ⋮┆----------------------------------------
            9┆ mac_b6=$(echo $mac_addr | cut -d':' -f6)
            ⋮┆----------------------------------------
           16┆ echo rtwpriv wlan0 efuse_set btwmap,3C,$mac_b6$mac_b5$mac_b4$mac_b3$mac_b2$mac_b1
            ⋮┆----------------------------------------
           18┆ echo MacAddress=$mac_addr | pibinfo set
            ⋮┆----------------------------------------
           22┆ rtwpriv wlan0 efuse_set btwmap,3C,$mac_b6$mac_b5$mac_b4$mac_b3$mac_b2$mac_b1
            ⋮┆----------------------------------------
           42┆ printf "BT MAC address:\t\t%s:%s:%s:%s:%s:%s\n" $bt_mac_b1 $bt_mac_b2 $bt_mac_b3 $bt_mac_b4 $bt_mac_b5   
  $bt_mac_b6                                                                                                            
                                                                                                                        
    /logs/firmware/patool_extraction/DUMP/mtdblock8_unblob_extracted/mtdblock8_extract/0-9650176.squashfs_v4_le_extract/
  usr/bin/BurnInTest.sh                                                                                                 
       external.semgrep-rules.bash.lang.correctness.unquoted-command-substitution-in-command          
          The result of command substitution $(...) or `...`, if unquoted, is split on whitespace or  
          other separators specified by the IFS variable. You should surround it with double quotes to
          avoid splitting the result.                                                                 
                                                                                                      
           21┆ eval $( dumpBurnInKeys | tdb get BurnIn )
            ⋮┆----------------------------------------
       external.semgrep-rules.bash.lang.correctness.unquoted-variable-expansion-in-command            
          Variable expansions must be double-quoted so as to prevent being split into multiple pieces 
          according to whitespace or whichever separator is specified by the IFS variable. If you     
          really wish to split the variable's contents, you may use a variable that starts with an    
          underscore e.g. $_X instead of $X, and semgrep will ignore it. If what you need is an array,
          consider using a proper bash array.                                                         
                                                                                                      
            6┆ echo $@
            ⋮┆----------------------------------------
           24┆ let sleepSecs=$BurnInWMins_num*60
            ⋮┆----------------------------------------
           26┆ sleep $sleepSecs
            ⋮┆----------------------------------------
           30┆ sleep  $intervalSecs
                                                                                                                        
    /logs/firmware/patool_extraction/DUMP/mtdblock8_unblob_extracted/mtdblock8_extract/0-9650176.squashfs_v4_le_extract/
  usr/bin/efuseBuff2PIB.sh                                                                                              
       external.semgrep-rules.bash.lang.correctness.unquoted-variable-expansion-in-command            
          Variable expansions must be double-quoted so as to prevent being split into multiple pieces 
          according to whitespace or whichever separator is specified by the IFS variable. If you     
          really wish to split the variable's contents, you may use a variable that starts with an    
          underscore e.g. $_X instead of $X, and semgrep will ignore it. If what you need is an array,
          consider using a proper bash array.                                                         
                                                                                                      
            6┆ echo $0 will write the efusebuffer from PATH to PIB with uuencode.
            ⋮┆----------------------------------------
            8┆ echo $0 [PATH]
            ⋮┆----------------------------------------
            9┆ echo default : $0 $EFUSEBUFFER_PATH
            ⋮┆----------------------------------------
           16┆ cat $EFUSEBUFFER_PATH | uuencode $EFUSEBUFFER_PATH | pibinfo setEfuseBuffer && echo set PIB OK || echo   
  set PIB FAILED                                                                                                        
            ⋮┆----------------------------------------
           16┆ cat $EFUSEBUFFER_PATH | uuencode $EFUSEBUFFER_PATH | pibinfo setEfuseBuffer && echo set PIB OK || echo   
  set PIB FAILED                                                                                                        
                                                                                                                        
    /logs/firmware/patool_extraction/DUMP/mtdblock8_unblob_extracted/mtdblock8_extract/0-9650176.squashfs_v4_le_extract/
  usr/bin/nfshost.sh                                                                                                    
       external.semgrep-rules.bash.lang.correctness.unquoted-variable-expansion-in-command            
          Variable expansions must be double-quoted so as to prevent being split into multiple pieces 
          according to whitespace or whichever separator is specified by the IFS variable. If you     
          really wish to split the variable's contents, you may use a variable that starts with an    
          underscore e.g. $_X instead of $X, and semgrep will ignore it. If what you need is an array,
          consider using a proper bash array.                                                         
                                                                                                      
            4┆ echo $0 host [prefix] [mntPoint]
            ⋮┆----------------------------------------
           17┆ mount -o nolock $host:$prefix $mntPoint
                                                                                                                        
    /logs/firmware/patool_extraction/DUMP/mtdblock8_unblob_extracted/mtdblock8_extract/0-9650176.squashfs_v4_le_extract/
  usr/bin/readAllFiles.sh                                                                                               
       external.semgrep-rules.bash.lang.best-practice.iteration-over-ls-output                
          Iterating over ls output is fragile. Use globs, e.g. 'dir/*' instead of '$(ls dir)'.
                                                                                              
           12┆ for i in $(ls $1); do
            ⋮┆----------------------------------------
           16┆ for i in $(ls $1); do
            ⋮┆----------------------------------------
       external.semgrep-rules.bash.lang.correctness.unquoted-variable-expansion-in-command            
          Variable expansions must be double-quoted so as to prevent being split into multiple pieces 
          according to whitespace or whichever separator is specified by the IFS variable. If you     
          really wish to split the variable's contents, you may use a variable that starts with an    
          underscore e.g. $_X instead of $X, and semgrep will ignore it. If what you need is an array,
          consider using a proper bash array.                                                         
                                                                                                      
            7┆ if ! ls $1 > /dev/null; then
            ⋮┆----------------------------------------
           12┆ for i in $(ls $1); do
            ⋮┆----------------------------------------
           14┆ [ -d $1/$i ] && catFiles $1/$i
            ⋮┆----------------------------------------
           16┆ for i in $(ls $1); do
            ⋮┆----------------------------------------
           19┆ if ! cat $1/$i > /dev/null; then
            ⋮┆----------------------------------------
           30┆ catFiles $dir
            ⋮┆----------------------------------------
           31┆ exit $exitCode
                                                                                                                        
    /logs/firmware/patool_extraction/DUMP/mtdblock8_unblob_extracted/mtdblock8_extract/0-9650176.squashfs_v4_le_extract/
  usr/bin/watchcgi.sh                                                                                                   
       external.semgrep-rules.bash.lang.correctness.unquoted-variable-expansion-in-command            
          Variable expansions must be double-quoted so as to prevent being split into multiple pieces 
          according to whitespace or whichever separator is specified by the IFS variable. If you     
          really wish to split the variable's contents, you may use a variable that starts with an    
          underscore e.g. $_X instead of $X, and semgrep will ignore it. If what you need is an array,
          consider using a proper bash array.                                                         
                                                                                                      
           18┆ while sleep $interval; do
                                                                                                                        
    /logs/firmware/patool_extraction/DUMP/mtdblock8_unblob_extracted/mtdblock8_extract/0-9650176.squashfs_v4_le_extract/
  var/www/cgiMain.sh                                                                                                    
       external.semgrep-rules.bash.lang.correctness.unquoted-command-substitution-in-command          
          The result of command substitution $(...) or `...`, if unquoted, is split on whitespace or  
          other separators specified by the IFS variable. You should surround it with double quotes to
          avoid splitting the result.                                                                 
                                                                                                      
           13┆ eval $(urlDecode "$PARAMETERS") || exit 1
            ⋮┆----------------------------------------
           17┆ eval $(memfree)
            ⋮┆----------------------------------------
           18┆ eval $(formData "$CONTENT_TYPE") || exit 1
            ⋮┆----------------------------------------
           23┆ eval $(urlDecode "$QUERY_STRING") || exit 1
            ⋮┆----------------------------------------
           28┆ eval $(urlDecode "$QUERY_STRING") || exit 1
            ⋮┆----------------------------------------
       external.semgrep-rules.bash.lang.correctness.unquoted-variable-expansion-in-command            
          Variable expansions must be double-quoted so as to prevent being split into multiple pieces 
          according to whitespace or whichever separator is specified by the IFS variable. If you     
          really wish to split the variable's contents, you may use a variable that starts with an    
          underscore e.g. $_X instead of $X, and semgrep will ignore it. If what you need is an array,
          consider using a proper bash array.                                                         
                                                                                                      
            2┆ echo $@ >> /tmp/debuglog
                                                                                                                        
    /logs/firmware/patool_extraction/DUMP/mtdblock8_unblob_extracted/mtdblock8_extract/0-9650176.squashfs_v4_le_extract/
  var/www/infMain.sh                                                                                                    
       external.semgrep-rules.bash.lang.correctness.unquoted-command-substitution-in-command          
          The result of command substitution $(...) or `...`, if unquoted, is split on whitespace or  
          other separators specified by the IFS variable. You should surround it with double quotes to
          avoid splitting the result.                                                                 
                                                                                                      
           50┆ eval $(urlDecode "$PARAMETERS") || exit 1
            ⋮┆----------------------------------------
           54┆ eval $(formData "$CONTENT_TYPE") || exit 1
            ⋮┆----------------------------------------
           59┆ eval $(urlDecode "$QUERY_STRING") || exit 1
            ⋮┆----------------------------------------
           64┆ eval $(urlDecode "$QUERY_STRING") || exit 1
            ⋮┆----------------------------------------
       external.semgrep-rules.bash.lang.correctness.unquoted-variable-expansion-in-command            
          Variable expansions must be double-quoted so as to prevent being split into multiple pieces 
          according to whitespace or whichever separator is specified by the IFS variable. If you     
          really wish to split the variable's contents, you may use a variable that starts with an    
          underscore e.g. $_X instead of $X, and semgrep will ignore it. If what you need is an array,
          consider using a proper bash array.                                                         
                                                                                                      
            9┆ ls -l $1 | cut -b 39-43
            ⋮┆----------------------------------------
           22┆ Content-Length: $(sizeof $infFile)\r
            ⋮┆----------------------------------------
           26┆ [ -f "$infFile" ] && cat $infFile
            ⋮┆----------------------------------------
           39┆ echo $@ >> /tmp/debuglog
            ⋮┆----------------------------------------
           76┆ [ -f "$infFile" ] && rm -f $infFile
            ⋮┆----------------------------------------
          112┆ SeparateStr=$(echo $Str | cut -d$SeparateChar -f${n})
            ⋮┆----------------------------------------
          112┆ SeparateStr=$(echo $Str | cut -d$SeparateChar -f${n})
            ⋮┆----------------------------------------
          132┆ SeparateStr=$(echo $Str | cut -d$SeparateChar -f${n})
            ⋮┆----------------------------------------
          132┆ SeparateStr=$(echo $Str | cut -d$SeparateChar -f${n})
            ⋮┆----------------------------------------
          142┆ n=$(expr $n - 1)
            ⋮┆----------------------------------------
          144┆ return $n
                                                                                                                        
    /logs/firmware/patool_extraction/DUMP/mtdblock8_unblob_extracted/mtdblock8_extract/0-9650176.squashfs_v4_le_extract/
  var/www/xmlFunctions.sh                                                                                               
       external.semgrep-rules.bash.lang.correctness.unquoted-command-substitution-in-command          
          The result of command substitution $(...) or `...`, if unquoted, is split on whitespace or  
          other separators specified by the IFS variable. You should surround it with double quotes to
          avoid splitting the result.                                                                 
                                                                                                      
           14┆ eval $(pibinfo Peripheral)
            ⋮┆----------------------------------------
           81┆ eval $(dumpSystemKeys | tdb get System) || return 1
            ⋮┆----------------------------------------
       external.semgrep-rules.bash.lang.correctness.unquoted-variable-expansion-in-command            
          Variable expansions must be double-quoted so as to prevent being split into multiple pieces 
          according to whitespace or whichever separator is specified by the IFS variable. If you     
          really wish to split the variable's contents, you may use a variable that starts with an    
          underscore e.g. $_X instead of $X, and semgrep will ignore it. If what you need is an array,
          consider using a proper bash array.                                                         
                                                                                                      
           73┆ [ -f "$2" ] && cat $2
            ⋮┆----------------------------------------
           74┆ [ -f "$3" ] && cat $3
            ⋮┆----------------------------------------
           78┆ ipv4address=$(ifconfig $median | grep "inet addr:" | cut -d ':' -f2 | cut -d ' ' -f1)
                
                
┌──────────────┐
│ Scan Summary │
└──────────────┘
Some files were skipped or only partially analyzed.
  Partially scanned: 17 files only partially analyzed due to parsing or internal Semgrep errors

Ran 7 rules on 58 files: 574 findings.