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

GroupAdministrators
Posts1,199
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:
Change to:
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.
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 >>