psyke
16th April 2003 18:18 UTC
IMPORTANT: Bug with CopyFiles in latest CVS
Hello, I am quite confident that I have found some kind of problem with CopyFiles in the latest development snapshot.
The bug can be experienced with Examples\bigtest.nsi. Essentially the installer crashes when it hits the CopyFiles instruction on line 192.
To reproduce bug:
1. get latest NSIS version from sourceforge
2. compile ${NSISDIR}\Examples\bigtest.ini
3. run bigtest.exe (you can disable all sections except for 'Test CopyFiles' since that's what we're interested in ;))
4. CRASH!!
This is happening on XP Pro no service packs.
To verify that it is the CopyFiles instruction, I commented out line 192 and went through steps 2 - 4. No crash.
I hope this can be resolved without too much difficulty, I don't have a copy of the April 14th snapshot handy so I can't go ahead with my installer unless CopyFiles works. ;)
Oh, I'm attaching a screenshot that is in chronological order from top to bottom showing exactly what happens.
Cheers. :)
Salaam/Peace
kichik
16th April 2003 19:51 UTC
I have uploaded a recompiled version of makensis.exe. It solves the problem. Last time we got rid of this problem by simply updating the Platform SDK, and as far as I know Joost (who uploaded the last makensis.exe) has the latest Platform SDK. If he really did have it then I intend to go a little deeper this time and find out the cause for this beyond the Platform SDK.
psyke
16th April 2003 19:56 UTC
Thanks Kichik. :)
I'll head over and grab that new makenisis then. Hope it was just a platform SDK issue so you don't have to spend any more time on this.
Salaam/Peace.
kichik
16th April 2003 20:06 UTC
From a first glimpse over this it seems something with the import table is seriously defected with whatever is causing this. The numbers are off by a set number for every imported DLL. As I have focused more on the resource section of the PE format when I learned about it (for the full color icons, etc.) I don't yet fully understand the import table structure so I'll have to go learn some more :)
kichik
16th April 2003 20:45 UTC
He forgot to install the latest Platform SDK on his new computer. Phew! :D
From what I have read up until now I have discovered that the hint number that helps Windows search for the export was wrong for almost all of the imported functions. I don't understand why it disrupted SHFileOperation and nothing else, I guess we'll never know... A corporate secret or something like that :D
psyke
16th April 2003 21:13 UTC
lol - i guess so, they've got plenty of secrets. ;)
I'm glad it was just a matter of needing the latest PSDK. :)
Thanks for your help. :)
Salaam/Peace.
Sunjammer
17th April 2003 09:01 UTC
It may be that all of the other functions were being looked up by name and for some reason SHFileOperation was being looked up by ordinal which would from what you've said be wrong.
kichik
17th April 2003 11:17 UTC
Nope, it was looked by name too :weird: