Menu

#5 Crashes if started using relative path

open
nobody
Other (3)
5
2009-01-08
2009-01-08
No

Symptoms:
I extract the contents of binary zip to c:\temp\awdbedit
Then use the command line:
cd c:\temp\awdbedit
awdbedit.exe

Program starts, creates its main window, then crashes with stack overflow.
But being run with full path qualification, i.e. "c:\temp\awdbedit\awdbedit.exe", it starts normally.

Reason:
getExePath function uses the path provided by GetCommandLine API, which returns not always full path, but sometimes relative path; in this case something unforeseen in getExePath and/or pluginScan occurs.

Fix:
Use GetModuleFileName(0) instead of GetCommandLine() - this will always return full path.
I didn't try real fixing since i'm under linux and found and debugged this problem using wine (i did test it under windows, the symptoms remain there). When i tried to compile it using winelib i got lots of errors, so i gave up trying.

Discussion

  • Oto

    Oto - 2009-07-09

    Have you tried the latest modified version?
    http://bios.rom.by/ROMutils/Award/awdbedit/re1_25.zip

     
  • Ruslan Kabatsayev

    >Have you tried the latest modified version?
    >http://bios.rom.by/ROMutils/Award/awdbedit/re1_25.zip

    Yes, it seems to work. But i can't find this version on sourceforge. (http://sourceforge.net/projects/awdbedit/files/)
    Is it still open-source?

     
  • Oto

    Oto - 2009-07-15

    I think it is but only as a different branch because lot of code was rewritten as it was badly written. Still it shouldn't be used to write bios to file.

    For source you should ask to this guy and maybe post as new version: http://www.rom.by/user/apple_rom

    Example from code:
    // stupid global variables
    sysbiosChipset_modifyChipsetPtr = &tempchipset;
    memcpy(sysbiosChipset_modifyChipsetPtr, chipRegPtr, sizeof(sysbiosChipRegEntry));

     

Log in to post a comment.