1 # SPDX-License-Identifier: GPL-2.0-or-later
3 # Defines basic Tcl procs for OpenOCD server modules
5 # Handle GDB 'R' packet. Can be overridden by configuration script,
6 # but it's not something one would expect target scripts to do
8 proc ocd_gdb_restart
{target_id
} {
9 # Fix!!! we're resetting all targets here! Really we should reset only
14 lappend _telnet_autocomplete_skip prevent_cps
15 lappend _telnet_autocomplete_skip POST
16 lappend _telnet_autocomplete_skip Host
:
18 echo
"Possible SECURITY ATTACK detected."
19 echo
"It looks like somebody is sending POST or Host: commands to OpenOCD."
20 echo
"This is likely due to an attacker attempting to use Cross Protocol Scripting"
21 echo
"to compromise your OpenOCD instance. Connection aborted."
25 proc POST
{args
} { prevent_cps
}
26 proc Host
: {args
} { prevent_cps
}
28 # list of commands we don't want to appear in autocomplete
29 lappend _telnet_autocomplete_skip _telnet_autocomplete_helper
31 # helper for telnet autocomplete
32 proc _telnet_autocomplete_helper pattern
{
33 set cmds
[info commands
$pattern]
35 # skip matches in variable '_telnet_autocomplete_skip'
36 foreach skip
$::_telnet_autocomplete_skip {
37 foreach n
[lsearch -all -regexp $cmds "^$skip\$"] {
38 set cmds
[lreplace $cmds $n $n]