On Mon, 14 Jul 1997, Chris Jacobson wrote:
> I have been recently having problems with crashes in MEdit, on the
> medit_save_to_disk() function, near free(mob_index) and free(mob_proto).
>
> I remember reading the solution to this is to comment those two lines
> out... however, that would cause a memory leak, would it not?
>
> I searched the archives, no luck.
>
Yes. This is more recently possibly fixd...
the relevant bits broken up into parts, as i've paraphrased them.
No particular order.
--------
The error in free() is because the mob_index includes the newly
created mob, which happens to be allocated, but not yet filled in, thus,
you free a null pointer. Either don't allocate this new mob_index entry
(espcially since you're just going to free it), or fill in all the data.
---------
I have upgraded my libc to the most recent release (i forget which
it was) and all errors in my medit and sedit functions went away. They now
work perfectly.
---------
I have been able to remove the crashing error in medit by simply
removing the line "free(mob_index)". This does create a memory leak i
think?
---------
Removing the free() line in medit does cause a memory leak. The
effects of this are not immediately noticable, and may be the cause of
many random non-repeatable errors in otherwise working functions.
---------
And my personal take on this..
Go ahead and free it. If you're smart, you've probably got a
builders port - which is probably also your coding port. This memory leak
can be contained to this port - its the only place where medit is being
used alot... it won't affect players. The other will assumedly be rebooted
on a frequent basis - thus the leak will not usually affect anything.
Of course, this coding style may be practical, but i think
we can all agree its like... crappy coding.
PjD
+-----------------------------------------------------------+
| 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/08/00 PST