C RSA_sign()不可预测地出现故障

C RSA_sign()不可预测地出现故障,c,openssl,dkim,C,Openssl,Dkim,我正在使用RSA_sign()创建dkim签名。有时,极不可预测的代码崩溃了 我得到一个像这样的gdb转储 Thread 39 (Thread 0x41401940 (LWP 31921)): #0 0x0000003b9dacc3bb in BN_div () from /lib64/libcrypto.so.6 #1 0x0000003b9daceb40 in BN_mod_inverse () from /lib64/libcrypto.so.6 #2 0x0000003b9dacb

我正在使用RSA_sign()创建dkim签名。有时,极不可预测的代码崩溃了

我得到一个像这样的gdb转储

Thread 39 (Thread 0x41401940 (LWP 31921)):
#0  0x0000003b9dacc3bb in BN_div () from /lib64/libcrypto.so.6
#1  0x0000003b9daceb40 in BN_mod_inverse () from /lib64/libcrypto.so.6
#2  0x0000003b9dacb609 in BN_BLINDING_create_param () from /lib64/libcrypto.so.6
#3  0x0000003b9dadc9f7 in RSA_setup_blinding () from /lib64/libcrypto.so.6
#4  0x0000003b9daee954 in ?? () from /lib64/libcrypto.so.6
#5  0x0000003b9daef56b in ?? () from /lib64/libcrypto.so.6
#6  0x0000003b9da6e965 in RSA_sign () from /lib64/libcrypto.so.6
#7  0x0000000000403e7f in dkim_create (headers=0x2aaaac001840, headerc=7,
......., v=0) at firm-dkim.c:145
这里有dkim.c公司

我如何进一步调试它

谢谢 Ram

好的,我想我弄错了 这里的密码 . 不为RSA*RSA_private分配任何内存,第48行

这个未分配的内存区域用于RSA_sign()和RSA_free()中

我想那一定是造成故障的原因。我现在已经分配了内存,我正在生产中运行守护进程。希望现在没有更多的故障。

好的,我想我得到了错误 这里的密码 . 不为RSA*RSA_private分配任何内存,第48行

这个未分配的内存区域用于RSA_sign()和RSA_free()中


我想那一定是造成故障的原因。我现在已经分配了内存,我正在生产中运行守护进程。希望现在没有更多的SEGFULTS。

使用openssl的调试版本和/或在valgrind下运行应用程序。我使用valgrind--tool=memcheck提供几乎相同的输出使用openssl的调试版本和/或在valgrind下运行应用程序。我使用valgrind--tool=memcheck提供几乎相同的输出