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, DotBot

Members: 0
Guests: 13
Stats
Files
Topics
Posts
Members
Newest Member
481
3,739
19,386
619
Alexander
Today's Birthdays
There are no member birthdays today.
Related Links
» SmaugMuds.org » Bugfix Lists » SWR FUSS Bugfix List » [Bug] Pfiles can cause infini...
Forum Rules | Mark all | Recent Posts

[Bug] Pfiles can cause infinite loops if corrupted
< Newer Topic :: Older Topic >

Pages:<< prev 1 next >>
Post is unread #1 Mar 4, 2006, 6:41 pm
Go to the top of the page
Go to the bottom of the page

Samson
Black Hand
GroupAdministrators
Posts3,643
JoinedJan 1, 2002

Bug: Pfiles can cause infinite loops if corrupted
Danger: High - One corrupt pfile will ruin your day. The resulting bug messages can quickly fill your quota.
Found by: Remcon
Fixed by: Samson

---

db.c, fread_word

Locate:
      if( feof( fp ) )
      {
         bug( "fread_word: EOF encountered on read.\r\n" );
         if( fBootDb )
            exit( 1 );
         *pword = '\0';
         return word;
      }


Change to:
      if( feof( fp ) )
      {
         bug( "fread_word: EOF encountered on read.\r\n" );
         if( fBootDb )
            exit( 1 );
         word[0] = '\0';
         return word;
      }


save.c, fread_char

Locate:
      word = feof( fp ) ? "End" : fread_word( fp );
      fMatch = FALSE;


Change to:
      word = ( feof( fp ) ? "End" : fread_word( fp ) );

      if( word[0] == '\0' )
      {
         bug( "%s: EOF encountered reading file!", __FUNCTION__ );
         word = "End";
      }
      fMatch = FALSE;


Repeat the same thing in fread_obj.

A corrupted pfile can become one of the worst nightmares in administering a mud. When such a pfile begins to load but is only partially complete, the code normally would continue to cycle at the EOF marker and get stuck there. The resulting bug messages are murder on the logs and other resources. In a limited quota environment, this will fill up your space in mere seconds. In a non-limited environment, the potential exists for this to fill up the entire drive in a matter of minutes.

The code fixes above can also be used on other things which expect to load files after bootup, mainly in snippets that add new things to the system which are not part of the main codebase.
       
Pages:<< prev 1 next >>