Login
User Name:

Password:



Register
Forgot your password?
Vote for Us!
auth_update crash
Dec 23, 2017, 10:15 pm
By Remcon
check_tumble
Dec 18, 2017, 7:21 pm
By Remcon
parse description bug
Dec 15, 2017, 10:08 pm
By Remcon
Couple bugs
Dec 12, 2017, 5:42 pm
By Remcon
Bug in disarm( )
Nov 12, 2017, 6:54 pm
By GatewaySysop
LoP 1.46
Author: Remcon
Submitted by: Remcon
LOP 1.45
Author: Remcon
Submitted by: Remcon
LOP Heroes Edition
Author: Vladaar
Submitted by: Vladaar
Heroes sound extras
Author: Vladaar
Submitted by: Vladaar
6Dragons 4.3
Author: Vladaar
Submitted by: Vladaar
Users Online
CommonCrawl, Yahoo!, Yandex

Members: 0
Guests: 18
Stats
Files
Topics
Posts
Members
Newest Member
478
3,708
19,242
612
Jacki72H
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,639
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 >>