Strange OasisOLC bug w/Linux

From: Mark Crichton (crichton@citynet.net)
Date: 02/06/97


The system our mud was running on was upgraded to a more recent version of
Linux's libc (up to 5.3.12 now) and I've noticed that my medit on new objects
has now broken.

I thought it was something benign (some bad code I've added) so I sat down
and passed the thing thru gdb.  What I found, however, baffles me even more.

The intial CREATE(mob_index, blah, blah) creates the mob_index without a hitch.
Now, when I create a new object, and Oasis goes to free it, boom, it crashes
at the free(mob_index) line.  A backtrace really gets me messed up.

(gdb) backtrace
#0  0x4004156d in __libc_free ()
#1  0x8290dbc in ?? ()
#2  0x1 in ?? ()
#3  0x104ec in ?? ()
Cannot access memory at address 0x81e58955.

To the best of my knowledge, I don't even touch mob_index anywhere else (like
this) except in medit.c

I think I remember someone saying that malloc() and friends was changed a bit,
but this is too wierd.  What's worse, it appears that oedit and friends DO
work...so this really has got me spinning for a loop. Also, why does it appear
that my return stack has gone haywire?  (which is somewaht disturbing)

Does anyone have suggestions/comments?  (What I wouldn't do for Purify (or
some tool just as good/simple to setup) right about now...)  Also, it does 
manifest itself on libc 5.3.17 (which my RedHat system runs as well).
+-----------------------------------------------------------+
| Ensure that you have read the CircleMUD Mailing List FAQ: |
|   http://cspo.queensu.ca/~fletcher/Circle/list_faq.html   |
+-----------------------------------------------------------+



This archive was generated by hypermail 2b30 : 12/18/00 PST