Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/c/68.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/macos/10.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
在MAC OS X上调用DH_generate_密钥例程时出现openssl校验和错误_C_Macos_Openssl - Fatal编程技术网

在MAC OS X上调用DH_generate_密钥例程时出现openssl校验和错误

在MAC OS X上调用DH_generate_密钥例程时出现openssl校验和错误,c,macos,openssl,C,Macos,Openssl,首先,我不确定这是否是一个特定的平台错误。我正在使用openssl库生成大素数和私钥/公钥。当素数相对较小(128位)时,它运行良好,但当素数越来越大(256512位)时,我无法编译并出现错误 上述代码产生了一个错误: malloc: *** error for object 0x7ffba8403c88: incorrect checksum for freed object - object was probably modified after being freed. *** set

首先,我不确定这是否是一个特定的平台错误。我正在使用openssl库生成大素数和私钥/公钥。当素数相对较小(128位)时,它运行良好,但当素数越来越大(256512位)时,我无法编译并出现错误

上述代码产生了一个错误:

 malloc: *** error for object 0x7ffba8403c88: incorrect checksum for freed object - object was probably modified after being freed.
*** set a breakpoint in malloc_error_break to debug
我在MacOx10.8.2上使用openssl 1.0.1。如果您有任何建议,我将不胜感激


更新:产生此类错误的另一种方法是在上述代码之前创建线程。无论哪种方式,子程序DH_generate_key总是给我错误。

与堆损坏相关的错误消息,例如来自
malloc()
的消息,表明您存在内存管理错误,例如释放内存后使用内存,或超出分配的内存。这种
malloc()
错误消息通常出现在实际编程错误发生的不同位置。在Valgrind中运行您的应用程序,以获取有关出错原因的有用信息

与错误无关,但上面两行代码中存在内存泄漏:

DH * params = DH_new(); 
params = DH_generate_parameters(512, 5, NULL, NULL);
指向分配的
DH
结构的指针在第二行被
DH
结构覆盖,该结构由
DH\u generate\u parameters()
返回。
DH_new()
分配的缓冲区丢失。但这不是错误消息的原因

DH * params = DH_new(); 
params = DH_generate_parameters(512, 5, NULL, NULL);