Archive: CVS snapshot + Win98SE + RadioButtons = crash


CVS snapshot + Win98SE + RadioButtons = crash
After updating to this morning's CVS snapshot and rebuilding my installer, I now get a crash when trying to display a custom page which has radio buttons. I'm using Win98SE and the 30 July 07:44 snapshot. Tried using a simpler example and still get the crash.

DEMO caused an invalid page fault in
module INSTALLOPTIONS.DLL at 0187:00a925f2.
Registers:
EAX=00000000 CS=0187 EIP=00a925f2 EFLGS=00010246
EBX=0000000d SS=018f ESP=0065f0b4 EBP=bfc05836
ECX=00430480 DS=018f ESI=00000006 FS=8227
EDX=00a92392 ES=018f EDI=00000da4 GS=0000
Bytes at CS:EIP:
80 38 31 75 0c 6a 00 6a 01 68 f1 00 00 00 57 ff
Stack dump:
00a929c2 00426000 0065fb10 0040aad0 00530e88 00000000 00000000 0000005a 0000002d 00000066 00000087 00000073 0000000b 0000000a 0000019a 000000dd


After upgrading to the latest CVS snapshot (3 Aug 2003, 13:44 GMT) I found no change - custom pages with radio buttons still cause installer to crash.

When I examined the files in the snapshot I found that the problem appears to have been introduced when InstallOptions.dll was updated from 1.62 to 1.63.

If I use the latest CVS snapshot my installer crashes whenever it tries to display a custom page containing radio buttons. This snapshot uses CVS version 1.63 of InstallOptions.dll. If I overwrite this DLL with CVS version 1.62 (from an earlier CVS snapshot) and recompile, my installer does not crash and the radio buttons work.


You don't have any strcmp/intcmp['s in your custom page by any chance?

-Stu


No, in fact it just calls InstallOptions::dialog to display the page, and the custom page INI file just has a single groupbox enclosing 3 radio buttons.


Maybe you could try moving the radio buttons around (change field numbers)

-Stu


Have tried that - even with completely different field numbers it crashes. But if I use InstallOptions.dll v1.62 (and change nothing else - same script, same INI file) then there are no crashes.


I have a Win98SE machine on the network.
Send me your ini and nsi file.

-Stu


Plesae try latest CVS version.


I am using the latest CVS snapshot (3 August, 19:44 GMT - this is the most up-to-date version available at the present time).

It seems that v1.63 of InstallOptions.dll handles radio buttons differently from earlier versions of the DLL.

In my script I had a group of 3 radio buttons with one preset using "State=1". This worked OK with older versions of the DLL but with v1.63 the installer crashes on my Win98SE system.

When v1.63 is used, however, all three radio buttons require an initial state. Adding "State=0" to the two other radio buttons appears to solve this problem.

Unfortunately v1.63 of InstallOptions.dll is still causing problems in my installer. It now crashes at different times, apparently at random, so I have had to switch back to v1.62 to get a stable installer.


1.64 is the latest CVS version. See the CVS Issues sticky post for more information. The snapshot probably haven't updated yet... As can be seen in the chancelog I have uploadead a new version of InstallOptions.dll after the snapshot time.


I'm aware of the CVS problems, that is why I was careful to quote the time and date of the snapshot and the version number of the DLL.

At the moment the NSIS Update feature is not working reliably, so I've been checking the Changelog to see if it is worth downloading another snapshot.

Version 1.64 should be in the next snapshot so I'll try again later today.

It must be a bit frustrating for developers to fix something and still find users complaining about the bug - lets hope SourceForge fix the CVS problems this month ;)


Hi pengyou,

The version 1.64 you're talking is the version of InstallOptions.dll or InstallOptions.cpp?

I think the problem(s) start with "LINK" control on win98, and we develop in win2k/xp, so the tests made by users on win98 are very important for us.

Maybe I should build InstallOptions.dll without "LINK" ctrl for you test if the latest version of CVS don't work.


Ramon, it was pszState being null. 1.64 should fix this. As pengyou said:

Adding "State=0" to the two other radio buttons appears to solve this problem.

Downloaded the current CVS snapshot (4 August, 07:44 GMT) and recompiled my script. My installer no longer crashes so InstallOptions.dll v1.64 has solved my problems.

Thanks for fixing it!


good