------- Comment From [email protected] 2017-07-20 05:36 EDT-------
Catched the reason:
All the internal function pointers in libibmca are NULL. So the sha1 call jumps 
over zero ;-). The reason why all the function pointers are NULL is simple 
because the ibmca engine init function ibmca_init() is called 3 (!!!) times.
The start of this function is:

static int ibmca_init(ENGINE * e)
{
static int init = 0;

if (ibmca_dso != NULL && init >= 2) {
IBMCAerr(IBMCA_F_IBMCA_INIT, IBMCA_R_ALREADY_LOADED);
goto err;
}

so init values >= 2 will cause the code to jump to the err label where
all internal function pointers are set to NULL. Tracing shows this very
clear. The first init works fine, the second similar but the third init
now decides to clear the function pointers and that's it.

Solution: Calling init more than once is certainly a feature :-).
However, a rework of the code like this:

static int ibmca_init(ENGINE * e)
{
static int init = 0;

if (init > 0)
return 1;

and everything is fine. So openssl call the engine's init function as
often as wanted it does no harm.

I'll attach a patch. Paulo please review the patch, maybe comment and rework 
and integrate this or another solution into the ibmca engine.
regards
H.Freudenberger

-- 
You received this bug notification because you are a member of Ubuntu
Bugs, which is subscribed to Ubuntu.
https://bugs.launchpad.net/bugs/1543455

Title:
  wget crashes with openssl-ibmca

To manage notifications about this bug go to:
https://bugs.launchpad.net/ubuntu-z-systems/+bug/1543455/+subscriptions

-- 
ubuntu-bugs mailing list
[email protected]
https://lists.ubuntu.com/mailman/listinfo/ubuntu-bugs

Reply via email to