我使用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 http://code.google.com/p/firm-dkim/source/browse/trunk/firm-dkim.c
我如何进一步调试它呢?
谢谢Ram
发布于 2012-02-07 23:09:06
好的,我想我得到了错误,这里的代码,firm-dkim.c。不为RSA *rsa_private分配任何内存,第48行
这个未分配的内存区在RSA_sign()和RSA_free()中使用
我想这一定是导致段错误的原因。我现在已经分配了内存,并且正在运行生产环境中的守护进程。希望现在不会再有段错误了。
https://stackoverflow.com/questions/9162106
复制相似问题