jntass / TASSL

此仓库已停止维护,请移步https://github.com/jntass/TASSL-1.1.1
http://www.tass.com.cn
Other
291 stars 106 forks source link

运行sm2示例程序时报错“*** Error in `./sm2keygen': free(): invalid pointer: 0x00c50700 *** Aborte” #24

Open liuhuahan opened 6 years ago

liuhuahan commented 6 years ago

交叉编译程序之后,在板子上运行“Tassl_demo/crypto”目录下的示例代码时,涉及SM2相关的代码,运行时均报错:/ Error in `./sm2keygen': free(): invalid pointer: 0x00c50700 Aborte

但是运行SM3、SM4的示例代码和openssl的测试代码也都正常。 是我交叉编译的问题吗?

因为公司项目,刚接触openssl,请多多指教。

liuhuahan commented 6 years ago

通过打印发现,是ec_group_new_from_data调用函数 EC_GROUP_new_curve_GFp生成曲线参数时失败,然后程序退出时,调用BN_CTX_free释放资源,BN_CTX_free继续依次调用 BN_STACK_finish(&ctx->stack); BN_POOL_finish(&ctx->pool);这两个函数的时候,执行到第二个函数的时候,出现free错误。