Re: [EXIM] Memory-management bug (2.02, Debian -3)

Top Page
Delete this message
Reply to this message
Author: Philip Hazel
Date:  
To: Ian Jackson
CC: exim-users
Subject: Re: [EXIM] Memory-management bug (2.02, Debian -3)
On Thu, 10 Sep 1998, Ian Jackson wrote:

> In verify.c, the functions verify_setup_hostlist and
> verify_setup_netlist are used to cache the in-memory forms of host and
> net lists; they are called from various places, mainly in smtp_in.c,
> always with a pointer to static global variable for `anchor' (the
> parameter indicating which in-memory list to store).
>
> Unfortunately, when building the data structures to put into these
> variables, they use the `store_get' function which returns memory to
> the pool after a message has been processed. This means that the
> memory for these data structures can get reused later !


Thanks for taking the trouble to fix and report this.

However, the bug is already fixed in the development source code. I have
not released it yet because I am also doing some other tidies/fixes. I
am expecting them to be complete this week, and so within the next
couple of weeks I am intending to release 2.03, which will pick up all
the currently known bugs/infelicities.

> The solution is to use the permanent allocator, store_malloc. I also
> had to add a `copy_string_malloc' function to string.c.


Snap!

> It is quite possible that noone else has
> noticed this problem yet,


Indeed. I judged it to be relatively rare, which is why I decided not to
rush out a patch but to wait for the 2.03 release.


> SECOND PATCH - DSN RECIPIENTS_LIST BUGFIX
> Believed suitable for general distribution, but _already reported_.
> I don't think it's relevant.


It isn't, since the code for DSN is only some preliminary stuff that I
was experimenting with and which is undocumented and incomplete.
However, the bug you report is certainly a bug! Thanks for the patch.

-- 
Philip Hazel            University of Cambridge Computing Service,
ph10@???      Cambridge, England. Phone: +44 1223 334714.



--
*** Exim information can be found at http://www.exim.org/ ***