Pages:<< prev 1 next >>
Off the Edge of the Map

GroupAdministrators
Posts1,199
JoinedMar 21, 2006
Bug: Setplanet has no checks for name argument
Danger: High - Planet files could be lost or corrupted.
Found by: Keberus
Fixed by: Keberus
---
planets.c, do_setplanet
Locate:
Change it to:
This will make sure that the planet name exists and make sure that you don't set it to the same name as a different planet.
Danger: High - Planet files could be lost or corrupted.
Found by: Keberus
Fixed by: Keberus
---
planets.c, do_setplanet
Locate:
if( !strcmp( arg2, "name" ) )
{
STRFREE( planet->name );
planet->name = STRALLOC( argument );
send_to_char( "Done.\r\n", ch );
save_planet( planet );
return;
}
Change it to:
if( !strcmp( arg2, "name" ) )
{
PLANET_DATA *tplanet;
if( !argument || argument[0] == '\0' )
{
send_to_char( "You must choose a name.\r\n", ch );
return;
}
if( ( tplanet = get_planet( argument ) ) != NULL )
{
send_to_char( "A planet with that name already Exists!\r\n", ch );
return;
}
STRFREE( planet->name );
planet->name = STRALLOC( argument );
send_to_char( "Done.\r\n", ch );
save_planet( planet );
return;
}
This will make sure that the planet name exists and make sure that you don't set it to the same name as a different planet.
Pages:<< prev 1 next >>