Login
User Name:

Password:



Register
Forgot your password?
Vote for Us!
Bug in disarm( )
Nov 12, 2017, 6:54 pm
By GatewaySysop
Bug in will_fall( )
Oct 23, 2017, 1:35 am
By GatewaySysop
Bug in do_zap( ), do_brandish( )
Oct 18, 2017, 1:52 pm
By GatewaySysop
Bug in get_exp_worth( )
Oct 10, 2017, 1:26 am
By GatewaySysop
Bug in do_drag( )
Oct 8, 2017, 12:40 am
By GatewaySysop
LOP Heroes Edition
Author: Vladaar
Submitted by: Vladaar
Heroes sound extras
Author: Vladaar
Submitted by: Vladaar
6Dragons 4.3
Author: Vladaar
Submitted by: Vladaar
Memwatch
Author: Johan Lindh
Submitted by: Vladaar
Beastmaster 6D sound files
Author: Vladaar
Submitted by: Vladaar
Users Online
CommonCrawl, Yahoo!, Bing, DotBot

Members: 0
Guests: 18
Stats
Files
Topics
Posts
Members
Newest Member
476
3,704
19,231
608
LAntorcha
Today's Birthdays
There are no member birthdays today.
Related Links
» SmaugMuds.org » Bugfix Lists » SWR FUSS Bugfix List » [Bug] Setplanet filename can ...
Forum Rules | Mark all | Recent Posts

[Bug] Setplanet filename can corrupt planet files
< Newer Topic :: Older Topic >

Pages:<< prev 1 next >>
Post is unread #1 Jan 2, 2009, 11:15 am
Go to the top of the page
Go to the bottom of the page

Kayle
Off the Edge of the Map
GroupAdministrators
Posts1,195
JoinedMar 21, 2006

Bug: Setplanet filename can corrupt planet files.
Danger: High - Planet files might get deleted or corrupted.
Found by: Keberus
Fixed by: Keberus

---


planets.c, do_setplanet

Find:
   if( !strcmp( arg2, "filename" ) )
   {
      DISPOSE( planet->filename );
      planet->filename = str_dup( argument );
      send_to_char( "Done.\r\n", ch );
      save_planet( planet );
      write_planet_list(  );
      return;
   }


Change to:
   if( !strcmp( arg2, "filename" ) )
   {
      PLANET_DATA *tplanet;

      if( !argument || argument[0] == '\0' )
      {
         send_to_char( "You must choose a file name.\r\n", ch );
         return;
      }
      for( tplanet = first_planet; tplanet; tplanet = tplanet->next )
      {
          if( !str_cmp( tplanet->filename, argument ) )
          {
              send_to_char( "A planet with that filename already exists!\r\n", ch );
              return;
          }
      }

      DISPOSE( planet->filename );
      planet->filename = str_dup( argument );
      send_to_char( "Done.\r\n", ch );
      save_planet( planet );
      write_planet_list(  );
      return;
   }


This will make sure that you can't set the filename to nothing, as well as making sure a planet with that filename doesn't already exist.
       
Pages:<< prev 1 next >>