OK, just implemented and committed.  Please try tomorrow's snapshot.

I'm not releasing this ticket yet, as I suspect there may be discussions
about this change...

[levitte - Sat Sep 27 22:19:53 2003]:

> It seems to me that adding a reference counter is a bit better.  This
> means that we need to have one extra function (and callback) to
>    release
> a pointer (and thereby decreas the reference count).
> 
> I'm experimenting with that approach as I write, and I'm going to
> release soon unless someone sees a problem with that approach.
> 
> Your alternative will unfortunately mean that we'll get a large number
> of reports telling us about the memory leak reported by valgrind and
> whatnot.  I'd prefer to stay away from there if possible.
> 
> [EMAIL PROTECTED] - Tue Aug 19 10:34:05 2003]:
> 
> > I get a crash in the lhash code in Openssl 0.9.7a. The troublesome
>    case
> > is when it is called from err/err.c in a multithreaded environment.
> >
> > The root cause *may* be that the hash is destroyed by
> > int_thread_del_item while (say) int_thread_get has a copy of the
> > pointer. The locking does not seem to cover the gap between loading
>    the
> > pointer (int_thread_hash) and then using it. Rather the lock is
>    taken
> > out, the pointer loaded, the lock released. The lock is then re-
>    acquired
> > and then the pointer is used. This seems wrong.
> >
> > My simple-minded proposal to fix the problem is to delete the code
>    in
> > int_thread_del_item that deletes the hash when it becomes empty.
>    Yes,
> > this will result in some memory being reserved and not freed......
>    I
> > also suspect that the same problem could arise with int_error_hash
>    --
> > that pointer is returned by int_err_get() when no lock is being
>    held.
> >
> > Advice?
> >
> > Philip
> 


-- 
Richard Levitte
[EMAIL PROTECTED]
______________________________________________________________________
OpenSSL Project                                 http://www.openssl.org
Development Mailing List                       [EMAIL PROTECTED]
Automated List Manager                           [EMAIL PROTECTED]

Reply via email to