Login
User Name:

Password:



Register
Forgot your password?
Vote for Us!
tintin++ ogg sound player script for linux
Author: Robert Smith
Submitted by: Vladaar
6Dragons ogg Soundpack
Author: Vladaar
Submitted by: Vladaar
6Dragons 4.4
Author: Vladaar
Submitted by: Vladaar
LoP 1.46
Author: Remcon
Submitted by: Remcon
LOP 1.45
Author: Remcon
Submitted by: Remcon
Users Online
CommonCrawl, Bing, Majestic-12, DotBot

Members: 0
Guests: 5
Stats
Files
Topics
Posts
Members
Newest Member
481
3,734
19,366
618
Micheal64X
Today's Birthdays
There are no member birthdays today.
Related Links
» SmaugMuds.org » Bugfix Lists » SmaugFUSS Bugfix List » [Bug] fread_mobile causes cra...
Forum Rules | Mark all | Recent Posts

[Bug] fread_mobile causes crashes on deleted mob indexes
< Newer Topic :: Older Topic >

Pages:<< prev 1 next >>
Post is unread #1 Mar 14, 2005, 11:09 am   Last edited May 11, 2005, 6:59 pm by Samson
Go to the top of the page
Go to the bottom of the page

Samson
Black Hand
GroupAdministrators
Posts3,643
JoinedJan 1, 2002

Bug: fread_mobile causes crashes on deleted mob indexes.
Danger: High - Crash bug
Found by: Someone on the SML long ago
Fixed by: Shadroth - also long ago :)

---

save.c, load_char_obj

Find:

         else if( !strcmp( word, "MOBILE" ) )
         {
            CHAR_DATA *mob;
            mob = fread_mobile( fp );
            ch->pcdata->pet = mob;
            mob->master = ch;
            xSET_BIT( mob->affected_by, AFF_CHARM );
         }


Change to:

         else if( !strcmp( word, "MOBILE" ) )
         {
            CHAR_DATA *mob;

            if( !( mob = fread_mobile( fp ) ) )
            {
               bug( "%s: Deleted mob saved on %s - skipping", __FUNCTION__, ch->name );
               break;
            }
            ch->pcdata->pet = mob;
            mob->master = ch;
            xSET_BIT( mob->affected_by, AFF_CHARM );
         }


This bug is a disaster waiting to happen if you should delete a mob from the game which is used commonly as a pet and people have them saved. There was no safety check on the results of fread_mobile, which will return NULL if the mob index does not exist. This bugfix is long-standing, and should have been fixed before. It was rediscovered while going through some old archives stored on my drive.
       
Pages:<< prev 1 next >>