首页 > 解决方案 > openssl EVP_DigestUpdate() 函数失败

问题描述

我在调用 openssl 库的 EVP_DigestUpdate() 函数的实用程序上面临间歇性核心转储。请注意,我在 AIX 操作系统中观察到此故障。我已附上呼叫跟踪和发生故障的点,我无法每次都重现此问题,因此无法对其进行调试。另请注意,该实用程序是以多进程方式调用的,这意味着瞬间至少有 4 个实用程序实例正在运行,其中一个失败。

*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 <username>]
.() at 0x10288f8c0 [inaccessible: missing <username>]
.() at 0x10288f290 [inaccessible: missing <username>]
.() at 0x102e59b48 [inaccessible: missing <username>]
sha256_block_p8(??, ??, ??) at 0x80000000049e2a0
sha256_block_data_order() at 0x80000000049b93c
SHA256_Update@AF12_4() at 0x8000000004c51f0
update256() at 0x8000000004c3bd0
EVP_DigestUpdate() at 0x8000000004bcc84
OpenSSLCrypto::updateHash(void*,const SecureArray&)(0x112ba6290, 0xffffffffffefc50, 
0x112ba63f0, 0xffffffffffefc10) at 0x80000000043d77c.
<There are few calls from utility before this>*

我无法理解是什么导致了失败,为什么它是间歇性的?

标签: c++cencryptionopensslaix

解决方案


推荐阅读