Just confirmed it on MudOS 22.2b14

Not strictly a FluffOS bug though that's largely an academic point,
since it affects FluffOS muds.
I think I've isolated the problem to this block of code in
restore_string() in object.c.
case '\\':
{
char *news = cp - 1;
if ((*news++ = *cp++)) {
while ((c = *cp++) != '"') {
if (c == '\\') {
if (!(*news++ = *cp++)) return ROB_STRING_ERROR;
}
else {
if (c == '\r')
*news++ = '\n';
else *news++ = c;
}
}
if ((c == '\0') || (*cp != '\0')) return ROB_STRING_ERROR;
*news = '\0';
newstr = new_string(news - start,
"restore_string");
strcpy(newstr, start);
sv->u.string = newstr;
sv->type = T_STRING;
sv->subtype = STRING_MALLOC;
return 0;
}
else return ROB_STRING_ERROR;
}
Bracketing that in #if 0/#endif makes the problem
go away. I used some debugs to figure out what it's
doing, and it appears to be recursing but using
the same variables in the recurse, thereby stepping
on itself.
That's my theory anyway, I'm not a C guy.
Until someone who knows what they're talking about
steps up, this seems like a good enough workaround.
-Crat