Jump to content

[6491] Ad.exe Fix For Better Compatibility


Guest gbj1
 Share

Recommended Posts

When I was trying to extract dbc and maps using svn ad.exe it stops with an debug assertion error, indicating a null buffer pointer for data extraction. Similar problem was stated before at http://forums.reaper-x.com/topic/extractmap-stops-at-2

navigate to common.cpp in extractor's source code, line 606:

        /* Get work buffer for store read data */
       if (mpq_f->mpq_b->flags & LIBMPQ_FILE_COMPRESSED) {
               if ((tempbuf = (unsigned char *)malloc(toread)) == NULL) {
                       /* Hmmm... We should add a better error handling here  */
                       return 0;
               }
       }

change to:

        /* Get work buffer for store read data */
       if ((tempbuf = (unsigned char *)malloc(toread)) == NULL) {
               /* Hmmm... We should add a better error handling here  */
               return 0;
       }

It's an uncompressed file causing the tempbuf not initialized(flag LIBMPQ_FILE_COMPRESSED not set).

Also there is also some 0xCDCDCDCD bytes in map trunks, just ignore them there's no problem. I'm guessing this is the new version installer intended to put some random memory data into mpq files, but unluckily they built it with Debug so there is no random but 0xCDCDCDCDs, pretty identical. Oops!

Link to comment
Share on other sites

 Share

×
×
  • Create New...

Important Information

We have placed cookies on your device to help make this website better. You can adjust your cookie settings, otherwise we'll assume you're okay to continue. Privacy Policy Terms of Use