Failure in openssl EVP_DigestUpdate() function

  aix, c++, encryption, openssl

I’m facing intermittent core dump on a utility which is calling EVP_DigestUpdate() function of openssl library. please note I’m observing this failure in AIX operating system. I have attached the call trace and point where the failure is happening, I’m unable to reproduce this every time and therefore unable to debug the same. Also please note that the utility is called in a multiprocess fashion, which means at a instant there are at least 4 instance of utility are running in which one of them fails.

*Function Trace:

IOT/Abort trap in pthread_kill at 0x900000000582f94

[untrusted: /usr/lib/libpthreads.a(shr_xpg5_64.o)]

0x900000000582f94 (pthread_kill+0x194) e8a20028 ld r5,0x28(r2)

(dbx) where

pthread_kill(??, ??) at 0x900000000582f94 [untrusted: /usr/lib/libpthreads.a(shr_xpg5_64.o)]

_p_raise(??) at 0x9000000005827e4 [untrusted: /usr/lib/libpthreads.a(shr_xpg5_64.o)]

setpgrp() at 0x900000000039268 [untrusted: /usr/lib/libc.a(shr_64.o)]

monldq(??) at 0x900000000055c64 [untrusted: /usr/lib/libc.a(shr_64.o)]

.() at 0x1005e20d0 [inaccessible: missing ]

.() at 0x10288f8c0 [inaccessible: missing ]

.() at 0x10288f290 [inaccessible: missing ]

.() at 0x102e59b48 [inaccessible: missing ]

sha256_block_p8(??, ??, ??) at 0x80000000049e2a0

sha256_block_data_order() at 0x80000000049b93c

[email protected]_4() at 0x8000000004c51f0

update256() at 0x8000000004c3bd0

EVP_DigestUpdate() at 0x8000000004bcc84

OpenSSLCrypto::updateHash(void*,const SecureArray&)(0x112ba6290, 0xffffffffffefc50,
0x112ba63f0, 0xffffffffffefc10) at 0x80000000043d77c.


I’m unable to understand what is causing the failure, and why it is intermittent?

Source: Windows Questions C++