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