当前位置:  技术问答>linux和unix

关于OPENSSL的一个问题

    来源: 互联网  发布时间:2017-04-23

    本文导语:  在测试的时候,怎么测试都没有问题,结果上了生产后,就报了: *** glibc detected *** ./SSRPQT: free(): invalid next size (fast): 0x0a119d70 *** ======= Backtrace: ========= /lib/libc.so.6[0x2bb595] /lib/libc.so.6(cfree+0x59)[0x2bb9d9] /lib/libcry...

在测试的时候,怎么测试都没有问题,结果上了生产后,就报了:
*** glibc detected *** ./SSRPQT: free(): invalid next size (fast): 0x0a119d70 ***
======= Backtrace: =========
/lib/libc.so.6[0x2bb595]
/lib/libc.so.6(cfree+0x59)[0x2bb9d9]
/lib/libcrypto.so.6(CRYPTO_free+0x3a)[0x448da5a]
/lib/libcrypto.so.6(BUF_MEM_free+0x47)[0x4412f07]
/lib/libcrypto.so.6[0x4414783]
/lib/libcrypto.so.6(BIO_free+0xc1)[0x4413f01]
/lib/libcrypto.so.6(BIO_free_all+0x34)[0x4413f54]
错误!SSRPQT是我的应用程序,我是把ssl的加解密放入了libcrypto.so中,然后供SSRPQT调用的。

有谁懂OpenSSL的,帮忙看下啊,
代码如下:

std::string Decrypt( const std::string& sInbuf, const std::string& sKey)
{
const char* inbuf = sInbuf.c_str();
unsigned char * key = (unsigned char *)sKey.c_str();
int inlen = sInbuf.length();
BIO *bio, *mbio, *cbio;
    char *dst;
    int outlen;
    
    mbio = BIO_new( BIO_s_mem( ) );
    cbio = BIO_new( BIO_f_cipher( ) );
    BIO_set_cipher( cbio , EVP_des_ecb( ) , key , NULL , 0 );
    
    bio = BIO_push( cbio , mbio );
    BIO_write( bio , inbuf , inlen );
    BIO_flush( bio );
    
outlen = BIO_get_mem_data( mbio , (char **) & dst );
dst[outlen] = '';
string sResult = dst;
BIO_free_all( bio );

    return sResult;
}

|
BIO_free_all( bio )这里面会对bio多次free吗?

    
 
 
 
本站(WWW.)旨在分享和传播互联网科技相关的资讯和技术,将尽最大努力为读者提供更好的信息聚合和浏览方式。
本站(WWW.)站内文章除注明原创外,均为转载、整理或搜集自网络。欢迎任何形式的转载,转载请注明出处。












  • 相关文章推荐
  • Linux下c基于openssl生成MD5的函数
  • linux下openssl要生成证书openssl.cnf配置
  • Redhat下安装openssl如何屏蔽系统带的openssl
  • 请问:我正在编linux下的openssl程序,调试时要用443号端口,但我发现不通,应是linux系统占用了,我怎可停了它以作我用,或停了系统的openssl
  • 找不到openssl.h
  • 如何安装openssl?
  • OpenSSL 分支 BoringSSL
  • 加密程序库 OpenSSL
  • 弱弱的问一下如何用openssl进行base64编码和解码的代码实现
  • openssl修改默认参数的api
  • openssl卸载掉了,好多服务都起不了,急啊。有何解救办法?
  • OpenSSL 私钥提取工具 Heartleech
  • 求:openssl函数库中文使用说明
  • linux下,使用openssl的des加密,密钥如何导出?
  • redmine安装,提示no such file to load –openssl’,能给点建议么?救救我
  • [请教]如何使用openssl的动态库
  • openssl怎么交叉编译?
  • OpenSSL源代码如何阅读
  • openssl/ssl.h
  • 请问:ubuntu下编译的openssl的.so文件放在那个目录 下阿?GCC如何导入.so的库文件?
  • openssl 在linux下安装编译


  • 站内导航:


    特别声明:169IT网站部分信息来自互联网,如果侵犯您的权利,请及时告知,本站将立即删除!

    ©2012-2021,