Skip to content

Commit 88139a6

Browse files
j6tttaylorr
authored andcommitted
gitk: sanitize 'exec' arguments: 'eval exec'
Convert calls of 'exec' where the arguments are already available in a list and 'eval' is used to unpack the list. Use 'concat' to unite the arguments into a single list before passing them to 'safe_exec'. Signed-off-by: Johannes Sixt <[email protected]> Signed-off-by: Taylor Blau <[email protected]>
1 parent 9f0d1c2 commit 88139a6

File tree

1 file changed

+6
-6
lines changed

1 file changed

+6
-6
lines changed

gitk

Lines changed: 6 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -339,7 +339,7 @@ proc parseviewrevs {view revs} {
339339
} elseif {[lsearch -exact $revs --all] >= 0} {
340340
lappend revs HEAD
341341
}
342-
if {[catch {set ids [eval exec git rev-parse $revs]} err]} {
342+
if {[catch {set ids [safe_exec [concat git rev-parse $revs]]} err]} {
343343
# we get stdout followed by stderr in $err
344344
# for an unknown rev, git rev-parse echoes it and then errors out
345345
set errlines [split $err "\n"]
@@ -9494,7 +9494,7 @@ proc copyreference {} {
94949494
if {$autosellen < 40} {
94959495
lappend cmd --abbrev=$autosellen
94969496
}
9497-
set reference [eval exec $cmd $rowmenuid]
9497+
set reference [safe_exec [concat $cmd $rowmenuid]]
94989498

94999499
clipboard clear
95009500
clipboard append $reference
@@ -9648,7 +9648,7 @@ proc mkbrgo {top} {
96489648
nowbusy newbranch
96499649
update
96509650
if {[catch {
9651-
eval exec git branch $cmdargs
9651+
safe_exec [concat git branch $cmdargs]
96529652
} err]} {
96539653
notbusy newbranch
96549654
error_popup $err
@@ -9689,7 +9689,7 @@ proc mvbrgo {top prevname} {
96899689
nowbusy renamebranch
96909690
update
96919691
if {[catch {
9692-
eval exec git branch $cmdargs
9692+
safe_exec [concat git branch $cmdargs]
96939693
} err]} {
96949694
notbusy renamebranch
96959695
error_popup $err
@@ -12279,7 +12279,7 @@ proc cache_gitattr {attr pathlist} {
1227912279
while {$newlist ne {}} {
1228012280
set head [lrange $newlist 0 [expr {$lim - 1}]]
1228112281
set newlist [lrange $newlist $lim end]
12282-
if {![catch {set rlist [eval exec git check-attr $attr -- $head]}]} {
12282+
if {![catch {set rlist [safe_exec [concat git check-attr $attr -- $head]]}]} {
1228312283
foreach row [split $rlist "\n"] {
1228412284
if {[regexp "(.*): $attr: (.*)" $row m path value]} {
1228512285
if {[string index $path 0] eq "\""} {
@@ -12581,7 +12581,7 @@ if {$selecthead eq "HEAD"} {
1258112581
if {$i >= [llength $argv] && $revtreeargs ne {}} {
1258212582
# no -- on command line, but some arguments (other than --argscmd)
1258312583
if {[catch {
12584-
set f [eval exec git rev-parse --no-revs --no-flags $revtreeargs]
12584+
set f [safe_exec [concat git rev-parse --no-revs --no-flags $revtreeargs]]
1258512585
set cmdline_files [split $f "\n"]
1258612586
set n [llength $cmdline_files]
1258712587
set revtreeargs [lrange $revtreeargs 0 end-$n]

0 commit comments

Comments
 (0)