[DGD] DGD crash after string too long error

Petter Nyström jimorie at gmail.com
Sat Jul 18 19:23:58 CEST 2009


Hello!

I tried sending this directly to Dworkin, but I guess this address was
not on his whitelist.

DGD just crashed on me. I am running the latest version, DGD 1.3.1 on
Linux. (But I have one small hack in place to allow the mud to send
ansi escape characters.)

This is what happens, simplified:

A user object receives a string that is of max string size to
receive_message(). (The string actually sent is longer, but I believe
DGD chomps it and sends as much of it as it can in one string to
receive_message().) The user object tries to add the received string
to a buffer that it keeps for logging purposes. A "string too long"
runtime error happens, as expected, because the buffer wasn't empty
and I didn't do any sanity checks for the combined length of the two
strings. The error message is written to DGD's stdout, so it seems to
be working as it should. But directly after that, DGD crashes.

I have experimented a little bit with strings going over the size
limit, but without being able to produce any crashes. So I'm afraid
there is something more subtle going in this particular case.

This crash problem is not a big deal to me, because I don't want to be
in the condition where it happened anyway. (I.e. I don't want to log
input to the types of user objects that can expect that long input
strings.) But if you think it is something worth looking at, I'll be
glad to help. The crash can be easily reproduced, and if you want I
can supply dgd binary, mudlib source and coredump. Just let me know
what you need!

Regards,

Jimorie



More information about the DGD mailing list