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>
This commit is contained in:
Cyrill Gorcunov 2011-07-07 00:56:35 +04:00
parent 619bfc87d1
commit 117eaa35ef

View file

@ -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}"