summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorBrad King <brad.king@kitware.com>2016-07-22 13:17:19 (GMT)
committerCMake Topic Stage <kwrobot@kitware.com>2016-07-22 13:17:19 (GMT)
commite09518ca50177d1dd0e1e156f481cd51562a394b (patch)
tree280db8d9f995822bc5bb273e80babb994f3d75e7
parent7bfbcc75a3158677897b2a80b02500425620e714 (diff)
parent11768733d321df55b0efcb70b278c71b8e216cf7 (diff)
downloadCMake-e09518ca50177d1dd0e1e156f481cd51562a394b.zip
CMake-e09518ca50177d1dd0e1e156f481cd51562a394b.tar.gz
CMake-e09518ca50177d1dd0e1e156f481cd51562a394b.tar.bz2
Merge topic 'nsis-protect-uninst-exec'
11768733 NSIS: Quote uninstaller path when executing it in a shell
-rw-r--r--Help/release/3.6.rst6
-rw-r--r--Modules/NSIS.template.in2
2 files changed, 7 insertions, 1 deletions
diff --git a/Help/release/3.6.rst b/Help/release/3.6.rst
index 771c9dd..144537d 100644
--- a/Help/release/3.6.rst
+++ b/Help/release/3.6.rst
@@ -308,3 +308,9 @@ Other Changes
preferred future use is upper cased component names in variables.
New variables that will be added to CPackRPM in later versions
will only support upper cased component variable format.
+
+* The CPack NSIS generator's configuration file template was fixed to
+ quote the path to the uninstaller tool used by the
+ :variable:`CPACK_NSIS_ENABLE_UNINSTALL_BEFORE_INSTALL` option.
+ This avoids depending on an insecure Windows feature to run an
+ uninstaller tool with a space in the path.
diff --git a/Modules/NSIS.template.in b/Modules/NSIS.template.in
index 2de9e1d..c66a89b 100644
--- a/Modules/NSIS.template.in
+++ b/Modules/NSIS.template.in
@@ -913,7 +913,7 @@ uninst:
ClearErrors
StrLen $2 "\Uninstall.exe"
StrCpy $3 $0 -$2 # remove "\Uninstall.exe" from UninstallString to get path
- ExecWait '$0 _?=$3' ;Do not copy the uninstaller to a temp file
+ ExecWait '"$0" _?=$3' ;Do not copy the uninstaller to a temp file
IfErrors uninst_failed inst
uninst_failed: