[Bug] Setplanet has no checks for name argument
< Newer Topic
:: Older Topic >
Pages:<< prev 1 next >>
#1 Jan 2, 2009 1:14 pm
Off the Edge of the Map
GroupAdministrators
Posts1,200
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 >>