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]