Skip to content

Commit 27c6530

Browse files
authored
Merge pull request #3665 from obrie/fix/device_name_sanitization
Fix device name sanitization within ES controller configscripts
2 parents 20720f8 + 4b5f20f commit 27c6530

4 files changed

Lines changed: 8 additions & 7 deletions

File tree

scriptmodules/supplementary/emulationstation/configscripts/mupen64plus.sh

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -230,8 +230,9 @@ function onend_mupen64plus_joystick() {
230230
if [[ -f "$file" ]]; then
231231
# backup current config file
232232
cp "$file" "${file}.bak"
233-
sed -i /"${DEVICE_NAME}_START"/,/"${DEVICE_NAME}_END"/d "$file"
234-
if grep -q "$DEVICE_NAME" "$file" ; then
233+
local escaped_device_name=$(echo "$DEVICE_NAME" | sed 's|[]\[^$.*/]|\\&|g')
234+
sed -i /"${escaped_device_name}_START"/,/"${escaped_device_name}_END"/d "$file"
235+
if grep -Fq "$DEVICE_NAME" "$file" ; then
235236
rm /tmp/mp64tempconfig.cfg
236237
return
237238
fi

scriptmodules/supplementary/emulationstation/configscripts/openmsx.sh

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -150,7 +150,7 @@ function onend_openmsx_joystick() {
150150
local conf
151151

152152
# sanitize filename
153-
conf=${DEVICE_NAME//[\?\<\>\\\/:\*\|]/}
153+
conf=${DEVICE_NAME//[:><?\"\/\\|*]/}
154154

155155
mkdir -p "$home/.openMSX/share/joystick/game"
156156
cat > "$home/.openMSX/share/joystick/${conf}.tcl" <<_EOF_

scriptmodules/supplementary/emulationstation/configscripts/reicast.sh

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -20,7 +20,7 @@ function onstart_reicast_joystick() {
2020
file="$configdir/dreamcast/mappings/controller_xboxdrv.cfg"
2121
;;
2222
*)
23-
file="$configdir/dreamcast/mappings/evdev_${DEVICE_NAME//[:><?\"]/-}.cfg"
23+
file="$configdir/dreamcast/mappings/evdev_${DEVICE_NAME//[:><?\"\/\\|*]/-}.cfg"
2424
;;
2525
esac
2626

@@ -221,7 +221,7 @@ function onend_reicast_joystick() {
221221
file="$configdir/dreamcast/mappings/controller_xboxdrv.cfg"
222222
;;
223223
*)
224-
file="$configdir/dreamcast/mappings/evdev_${DEVICE_NAME//[:><?\"]/-}.cfg"
224+
file="$configdir/dreamcast/mappings/evdev_${DEVICE_NAME//[:><?\"\/\\|*]/-}.cfg"
225225
;;
226226
esac
227227

scriptmodules/supplementary/emulationstation/configscripts/retroarch.sh

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -241,7 +241,7 @@ function map_retroarch_joystick() {
241241
declare -A hat_map=([1]="up" [2]="right" [4]="down" [8]="left")
242242
iniGet "input_driver"
243243
local input_driver="$ini_value"
244-
local autoconfig_preset=$(grep -rwl "$rootdir/emulators/retroarch/autoconfig-presets/$input_driver" -e "$DEVICE_NAME" | head -1)
244+
local autoconfig_preset=$(grep -rwFl "$rootdir/emulators/retroarch/autoconfig-presets/$input_driver" -e "$DEVICE_NAME" | head -1)
245245
for key in "${keys[@]}"; do
246246
case "$input_type" in
247247
hat)
@@ -387,7 +387,7 @@ function onend_retroarch_joystick() {
387387
done < <(grep -Fl "\"$DEVICE_NAME\"" "$dir/"*.cfg 2>/dev/null)
388388

389389
# sanitise filename
390-
file="${DEVICE_NAME//[\?\<\>\\\/:\*\|]/}.cfg"
390+
file="${DEVICE_NAME//[:><?\"\/\\|*]/}.cfg"
391391

392392
if [[ -f "$dir/$file" ]]; then
393393
mv "$dir/$file" "$dir/$file.bak"

0 commit comments

Comments
 (0)