Just stumbled across a serious bug with QuickMUD (and possibly any derivs of it, I didn't look).
Since QuickMUD changes the prelogin connected states to negative numbers, copyover fails to boot people off that are logging in or are creating characters.
This creates a situation of winding up with corrupt characters if a copyover occurs while someone is making a new char (this is how I discovered said bug) or, far worse, allowing someone to login as another player without having the password (this one I found after some testing).
The fix is simple enough… in do_copyover(), find this: if (!d->character || d->connected > CON_PLAYING)
and change it to: if (!d->character || d->connected < CON_PLAYING)
An obvious oversight when the states were changed, but a pretty huge one!
That should take care of it if you haven't added any new states… but if you have, you should take a closer look and do what needs doing to fix it. Though you should probably take a closer look even if you haven't added any new states… I know I will be. :)
Since QuickMUD changes the prelogin connected states to negative numbers, copyover fails to boot people off that are logging in or are creating characters.
This creates a situation of winding up with corrupt characters if a copyover occurs while someone is making a new char (this is how I discovered said bug) or, far worse, allowing someone to login as another player without having the password (this one I found after some testing).
The fix is simple enough… in do_copyover(), find this:
if (!d->character || d->connected > CON_PLAYING)
and change it to:
if (!d->character || d->connected < CON_PLAYING)
An obvious oversight when the states were changed, but a pretty huge one!
That should take care of it if you haven't added any new states… but if you have, you should take a closer look and do what needs doing to fix it. Though you should probably take a closer look even if you haven't added any new states… I know I will be. :)