Archive: A Trap about "/RebootOK" under Win9x System.


A Trap about "/RebootOK" under Win9x System.
This topic is only affect for Win9x, NT core OS will not be affect .
==
Sometimes it will make a big trouble about "/REBOOTOK" under Win9x.

If someone want to update some system files under Win9x, he must use "/REBOOTOK" to do it.

And "/REBOOTOK" under Win9x is finally using Wininit.ini to do it.

We known Wininit.exe moving files useing a "rename" function under "DOS".

"Rename" under DOS have a big limit: SOURCE Filename and TARGET Filename must on the same disk.
==
OK, now think about this situation:

If someone put some new system_files outside C: with "/REBOOTOK" function, it will make NSIS to add someline like this into wininit.ini:

"c:\windows\system\target=d:\dir\source"

Arter reboot, wininit.exe will make a error message, and DELETE TARGET FIle immediately.

If that file is a Very Important file (ex: GDI.EXE), this will make Win9x DEAD.

Could NSIS TEAM add some check inside MAKENSIS to prevent this situation happen? Thank you very much.


UpgradeDLL prevents this situation. It puts the temporary file on the same volume as the destination file.