Re: MEDit Free Revisited.

From: Patrick J. Dughi (dughi@IMAXX.NET)
Date: 07/14/97

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
        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.


      | Ensure that you have read the CircleMUD Mailing List FAQ: |
      |   |

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