Well, as you all know, I've been complaining for a long time about crashes
in ERR_get_state on SPARC Solaris, and we can't seem to find the problem.
Part of the trouble has presumably been reproducibility.
I've finally made a little biddy test app that demonstrates the problem and
am including it here. "Little biddy" is relative, as the thing is 216 lines
long, but most of the code is support code and probably isn't really of much
consequence to the problem at hand. The main things to look at are:
main
ThreadRootStartingPoint
'main' sets up OpenSSL and controls the test.
'ThreadRootStartingPoint' runs the user code in ThreadMain in the __cThread
class and cleans up when ThreadMain returns. This is where the crash is.
Both functions are very short and, with the exception of locking callback
functions, are the only ones that interact with OpenSSL.
Compilation instructions are in the header block in the source. The
attachments 'comp' and 'link' are shell scripts that compile and link the
test program.
Once built, just run 'tst' and it will crash in a few seconds.
Will you please look at this for me and see if I'm using OpenSSL incorrectly
or if there really is a library bug that needs fixed? I'm supposed be
shipping a product right now, and I can't ship it until this crash bug is
resolved. I'm very much in the hot seat over this and am quite anxious to
get it fixed.
<<tst.cpp>> <<comp>> <<link>>
Thanks for the help,
Bill Rebey
tst.cpp
comp
link