diff options
author | Cyrill Gorcunov <gorcunov@gmail.com> | 2011-07-07 00:56:35 +0400 |
---|---|---|
committer | Cyrill Gorcunov <gorcunov@gmail.com> | 2011-07-15 23:14:32 +0400 |
commit | 2f39e1a066a38431a715af4b29f7ca28f3b4a79f (patch) | |
tree | ae46780b772900d92eb46d6ebf012278898da284 | |
parent | ffee19a3b2b130c9190014b3c6d3bf5b32d58cd0 (diff) | |
download | nasm-2f39e1a066a38431a715af4b29f7ca28f3b4a79f.tar.gz |
nsis: Make sure the registry keys exist
It was reported on nasm forum (http://forum.nasm.us/index.php?topic=1013.0)
that if uninstallation procedure get stopped (for any reason) in a middle
leading to read empty registry values an attempt to remove arbitrary
files might happen. So make sure there are some sane values in registry.
N.B: People, if you find some bug in nasm, don't write to forum, file
bug directly in bugzilla, if it's not a bug we simply close it, otherwise
we might miss serious problems like this one!
Signed-off-by: Cyrill Gorcunov <gorcunov@gmail.com>
-rw-r--r-- | nasm.nsi | 16 |
1 files changed, 14 insertions, 2 deletions
@@ -183,11 +183,23 @@ SectionEnd Section "Uninstall" ; ; files on HDD - RMDir /r /rebootok "$INSTDIR" + IfFileExists "$INSTDIR" +3 +1 + MessageBox MB_OK "No files found, aborting." + Abort + RMDir /r /rebootok "$INSTDIR" + ; + ; Links Delete /rebootok "$DESKTOP\${PRODUCT_SHORT_NAME}.lnk" ; - ; Start Menu folder + ; Start menu folder ReadRegStr $0 HKCU Software\${PRODUCT_SHORT_NAME} "lnk" + StrCmp $0 0 +1 +3 + MessageBox MB_OK "Invalid path to a lnk file, aborting" + Abort + IfFileExists $0 +3 +1 + MessageBox MB_OK "No lnk files found, aborting." + Abort + RMDir /r /rebootok "$INSTDIR" Delete /rebootok "$0\*" RMDir "$0" DeleteRegKey /ifempty HKCU "Software\${PRODUCT_SHORT_NAME}" |