Bug: MSet allows you to change the name of a PC, and can set names to nothing.
Danger: MAXIMUM
Found by: Orion Elder
Fixed by: Orion Elder
-----
[build.c]
In do_mset find:
if ( !str_cmp( arg2, "name" ) )
{
if ( !can_mmodify( ch, victim ) )
return;
if ( !IS_NPC(victim) && get_trust( ch ) < LEVEL_MASTER )
{
send_to_char( "Not on PC's.\n\r", ch );
return;
}
Change that to:
if ( !str_cmp( arg2, "name" ) )
{
if ( !can_mmodify( ch, victim ) )
return;
if ( !IS_NPC( victim ) )
{
send_to_char( "Not on PC's.\n\r", ch );
return;
}
And below it add:
if ( !arg3 || arg3[0] == '\0' )
{
send_to_char( "Names can not be set to an empty string.\n\r", ch );
return;
}
This has several potential problems. An empty name string makes for something that can not be targetted, first of al, and could case major problems. Being able to MSet a PCs name allows one to change their name to one that is already taken (thus resulting in confusion).
PCRename is made for that task anyway.