Files
git-mirror/git-gui/lib/win32.tcl
Johannes Sixt 311d9ada3a Merge branch 'js/fix-open-exec'
This addresses CVE-2025-46835, Git GUI can create and overwrite a
user's files:

When a user clones an untrusted repository and is tricked into editing
a file located in a maliciously named directory in the repository, then
Git GUI can create and overwrite files for which the user has write
permission.

Signed-off-by: Johannes Sixt <j6t@kdbg.org>
2025-05-23 17:04:31 -04:00

28 lines
631 B
Tcl

# git-gui Misc. native Windows 32 support
# Copyright (C) 2007 Shawn Pearce
proc win32_read_lnk {lnk_path} {
return [safe_exec [list cscript.exe \
/E:jscript \
/nologo \
[file join $::oguilib win32_shortcut.js] \
$lnk_path]]
}
proc win32_create_lnk {lnk_path lnk_exec lnk_dir} {
global oguilib
set lnk_args [lrange $lnk_exec 1 end]
set lnk_exec [lindex $lnk_exec 0]
set cmd [list wscript.exe \
/E:jscript \
/nologo \
[file nativename [file join $oguilib win32_shortcut.js]] \
$lnk_path \
[file nativename [file join $oguilib git-gui.ico]] \
$lnk_dir \
$lnk_exec]
safe_exec [concat $cmd $lnk_args]
}