Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/cplusplus/160.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
C++ 是什么导致OpenSSL出错? (gdb)英国电信 #0 0x04010C2英寸??()来自/lib/ld linux.so.2 #在../sysdeps/unix/syscall template.S:82处写入1 0x06a14a0b() #2 0x04154ae9英寸??()来自/lib/i386 linux gnu/libcrypto.so.1.0.0 #来自/lib/i386 linux gnu/libcrypto.so.1.0.0的BIO_write()中的3 0x041518e4 #4 0x040781f1英寸??()来自/lib/i386 linux gnu/libssl.so.1.0.0 #5 0x040785ff英寸??()来自/lib/i386 linux gnu/libssl.so.1.0.0 #6 0x04078855英寸??()来自/lib/i386 linux gnu/libssl.so.1.0.0 #7 0x04075e28英寸??()来自/lib/i386 linux gnu/libssl.so.1.0.0 #来自/lib/i386 linux gnu/libssl.so.1.0.0的SSL_write()中的8 0x0408d709 #9 0x0409c451英寸??()来自/lib/i386 linux gnu/libssl.so.1.0.0 #来自/lib/i386 linux gnu/libcrypto.so.1.0.0的BIO_write()中的10 0x041518e4 #SSL连接发送中的11 0x0814b10f(连接=0x9ffbbd0) ... (gdb)打印*连接->生物 $1={method=0x40ac800,callback=0,cb_arg=0x0,init=1,shutdown=1,flags=0,retry_reason=0,num=0,ptr=0xa27e768,next_bio=0x7b84ad0,prev_bio=0x0,references=1,num_read=904, num_write=2870,ex_data={sk=0x0,dummy=774321733} (gdb)打印*连接->ssl $2={version=769,type=4096,method=0x40aacc0,rbio=0x7b84ad0,wbio=0x7b84ad0,bbio=0x0,rwstate=2,in_握手=0,握手功能=0x40738f0,服务器=0,新_会话=0,安静_关机=0, 关机=0,状态=3,rstate=240,初始化buf=0x0,初始化msg=0xf5838e4,初始化num=0,初始化off=0, packet=0xf848ebb“\027\003\001\001\330HTTP/1.1 200正常\r\n访问控制允许来源:*\r\n缓存控制:私有,无缓存,无存储,必须重新验证\r\n内容类型:text/javascript;charset=UTF-8\r\nETag:\”cacca674ed49d64124f812372ad59561“..,数据包长度=0,s2=0x0,s3=0xf3ea410,d1=0x0,预读=0,消息回调=0,消息回调参数=0x0,命中=0,参数=0x99f82b8,密码列表=0x0, 密码列表由id=0x0、mac标志=0、enc\U read\U ctx=0xace5438、read\U hash=0xabce1c8、expand=0x0、enc\U write\U ctx=0x9794468、write\U hash=0xc057018、compress=0x0、cert=0xe1f70d8、sid\U ctx长度=0、, sid_ctx='\000',session=0x7d54760,generate_session_id=0,verify_mode=0,verify_callback=0,info_callback=0,error=0,error_code=0,psk_client_callback=0, psk_服务器_回调=0,ctx=0xae8ce30,调试=0,验证_结果=20,ex_数据={sk=0x0,虚拟=0},客户端_CA=0x0,引用=1,选项=4,模式=4,最大证书列表=102400,第一个_数据包=0, 客户端版本=769,最大发送片段=16384,tlsext调试cb=0,tlsext调试参数=0x0,tlsext调试主机名=0x0,服务器名=0,tlsext调试状态类型=1,tlsext调试状态=0, tlsext_ocsp_ID=0x0,tlsext_ocsp_exts=0x0,tlsext_ocsp_resp=0x0,tlsext_ocsp_resplen=-1,tlsext_票证_预期=1,tlsext_ecpointformatlist_长度=3,tlsext_ecpointformatlist=0xac40bc8”“, tlsext_ellipticcurvelist_长度=50,tlsext_ellipticcurvelist=0x7b20878“,tlsext_不透明_prf_输入=0x0,tlsext_不透明_prf_输入=0,tlsext_会话_票证=0x0,tls_会话_票证_ext_cb=0, tls_session_ticket_ext_cb_arg=0x0,tls_session_secret_cb=0,tls_session_secret_cb_arg=0x0,initial_ctx=0xae8ce30,next_proto_protocolated=0x982fd50“Groups.History”, 下一个协议长度=111'o',srtp_配置文件=0x7373656d,srtp_配置文件=0x2e656761,tlsext_心跳=1953720648,tlsext_hb_待定=0,tlsext_hb_seq=424,重新协商=1232,srp_ctx={ SRP_cb_arg=0x0,TLS_ext_SRP_username_callback=0x6f697463,SRP_verify_param_callback=0x64695f6e,SRP_give_SRP_client_pwd_callback=0x4c4f202c,login=0x72742e44'',N=0x498,g=0x0,s=0xa, B=0xfc0301,A=0xfc03,A=0x0,B=0x0,v=0x0,信息=0x0,强度=0,srp_掩码=0}_C++_C_Linux_Ssl_Openssl - Fatal编程技术网

C++ 是什么导致OpenSSL出错? (gdb)英国电信 #0 0x04010C2英寸??()来自/lib/ld linux.so.2 #在../sysdeps/unix/syscall template.S:82处写入1 0x06a14a0b() #2 0x04154ae9英寸??()来自/lib/i386 linux gnu/libcrypto.so.1.0.0 #来自/lib/i386 linux gnu/libcrypto.so.1.0.0的BIO_write()中的3 0x041518e4 #4 0x040781f1英寸??()来自/lib/i386 linux gnu/libssl.so.1.0.0 #5 0x040785ff英寸??()来自/lib/i386 linux gnu/libssl.so.1.0.0 #6 0x04078855英寸??()来自/lib/i386 linux gnu/libssl.so.1.0.0 #7 0x04075e28英寸??()来自/lib/i386 linux gnu/libssl.so.1.0.0 #来自/lib/i386 linux gnu/libssl.so.1.0.0的SSL_write()中的8 0x0408d709 #9 0x0409c451英寸??()来自/lib/i386 linux gnu/libssl.so.1.0.0 #来自/lib/i386 linux gnu/libcrypto.so.1.0.0的BIO_write()中的10 0x041518e4 #SSL连接发送中的11 0x0814b10f(连接=0x9ffbbd0) ... (gdb)打印*连接->生物 $1={method=0x40ac800,callback=0,cb_arg=0x0,init=1,shutdown=1,flags=0,retry_reason=0,num=0,ptr=0xa27e768,next_bio=0x7b84ad0,prev_bio=0x0,references=1,num_read=904, num_write=2870,ex_data={sk=0x0,dummy=774321733} (gdb)打印*连接->ssl $2={version=769,type=4096,method=0x40aacc0,rbio=0x7b84ad0,wbio=0x7b84ad0,bbio=0x0,rwstate=2,in_握手=0,握手功能=0x40738f0,服务器=0,新_会话=0,安静_关机=0, 关机=0,状态=3,rstate=240,初始化buf=0x0,初始化msg=0xf5838e4,初始化num=0,初始化off=0, packet=0xf848ebb“\027\003\001\001\330HTTP/1.1 200正常\r\n访问控制允许来源:*\r\n缓存控制:私有,无缓存,无存储,必须重新验证\r\n内容类型:text/javascript;charset=UTF-8\r\nETag:\”cacca674ed49d64124f812372ad59561“..,数据包长度=0,s2=0x0,s3=0xf3ea410,d1=0x0,预读=0,消息回调=0,消息回调参数=0x0,命中=0,参数=0x99f82b8,密码列表=0x0, 密码列表由id=0x0、mac标志=0、enc\U read\U ctx=0xace5438、read\U hash=0xabce1c8、expand=0x0、enc\U write\U ctx=0x9794468、write\U hash=0xc057018、compress=0x0、cert=0xe1f70d8、sid\U ctx长度=0、, sid_ctx='\000',session=0x7d54760,generate_session_id=0,verify_mode=0,verify_callback=0,info_callback=0,error=0,error_code=0,psk_client_callback=0, psk_服务器_回调=0,ctx=0xae8ce30,调试=0,验证_结果=20,ex_数据={sk=0x0,虚拟=0},客户端_CA=0x0,引用=1,选项=4,模式=4,最大证书列表=102400,第一个_数据包=0, 客户端版本=769,最大发送片段=16384,tlsext调试cb=0,tlsext调试参数=0x0,tlsext调试主机名=0x0,服务器名=0,tlsext调试状态类型=1,tlsext调试状态=0, tlsext_ocsp_ID=0x0,tlsext_ocsp_exts=0x0,tlsext_ocsp_resp=0x0,tlsext_ocsp_resplen=-1,tlsext_票证_预期=1,tlsext_ecpointformatlist_长度=3,tlsext_ecpointformatlist=0xac40bc8”“, tlsext_ellipticcurvelist_长度=50,tlsext_ellipticcurvelist=0x7b20878“,tlsext_不透明_prf_输入=0x0,tlsext_不透明_prf_输入=0,tlsext_会话_票证=0x0,tls_会话_票证_ext_cb=0, tls_session_ticket_ext_cb_arg=0x0,tls_session_secret_cb=0,tls_session_secret_cb_arg=0x0,initial_ctx=0xae8ce30,next_proto_protocolated=0x982fd50“Groups.History”, 下一个协议长度=111'o',srtp_配置文件=0x7373656d,srtp_配置文件=0x2e656761,tlsext_心跳=1953720648,tlsext_hb_待定=0,tlsext_hb_seq=424,重新协商=1232,srp_ctx={ SRP_cb_arg=0x0,TLS_ext_SRP_username_callback=0x6f697463,SRP_verify_param_callback=0x64695f6e,SRP_give_SRP_client_pwd_callback=0x4c4f202c,login=0x72742e44'',N=0x498,g=0x0,s=0xa, B=0xfc0301,A=0xfc03,A=0x0,B=0x0,v=0x0,信息=0x0,强度=0,srp_掩码=0}

C++ 是什么导致OpenSSL出错? (gdb)英国电信 #0 0x04010C2英寸??()来自/lib/ld linux.so.2 #在../sysdeps/unix/syscall template.S:82处写入1 0x06a14a0b() #2 0x04154ae9英寸??()来自/lib/i386 linux gnu/libcrypto.so.1.0.0 #来自/lib/i386 linux gnu/libcrypto.so.1.0.0的BIO_write()中的3 0x041518e4 #4 0x040781f1英寸??()来自/lib/i386 linux gnu/libssl.so.1.0.0 #5 0x040785ff英寸??()来自/lib/i386 linux gnu/libssl.so.1.0.0 #6 0x04078855英寸??()来自/lib/i386 linux gnu/libssl.so.1.0.0 #7 0x04075e28英寸??()来自/lib/i386 linux gnu/libssl.so.1.0.0 #来自/lib/i386 linux gnu/libssl.so.1.0.0的SSL_write()中的8 0x0408d709 #9 0x0409c451英寸??()来自/lib/i386 linux gnu/libssl.so.1.0.0 #来自/lib/i386 linux gnu/libcrypto.so.1.0.0的BIO_write()中的10 0x041518e4 #SSL连接发送中的11 0x0814b10f(连接=0x9ffbbd0) ... (gdb)打印*连接->生物 $1={method=0x40ac800,callback=0,cb_arg=0x0,init=1,shutdown=1,flags=0,retry_reason=0,num=0,ptr=0xa27e768,next_bio=0x7b84ad0,prev_bio=0x0,references=1,num_read=904, num_write=2870,ex_data={sk=0x0,dummy=774321733} (gdb)打印*连接->ssl $2={version=769,type=4096,method=0x40aacc0,rbio=0x7b84ad0,wbio=0x7b84ad0,bbio=0x0,rwstate=2,in_握手=0,握手功能=0x40738f0,服务器=0,新_会话=0,安静_关机=0, 关机=0,状态=3,rstate=240,初始化buf=0x0,初始化msg=0xf5838e4,初始化num=0,初始化off=0, packet=0xf848ebb“\027\003\001\001\330HTTP/1.1 200正常\r\n访问控制允许来源:*\r\n缓存控制:私有,无缓存,无存储,必须重新验证\r\n内容类型:text/javascript;charset=UTF-8\r\nETag:\”cacca674ed49d64124f812372ad59561“..,数据包长度=0,s2=0x0,s3=0xf3ea410,d1=0x0,预读=0,消息回调=0,消息回调参数=0x0,命中=0,参数=0x99f82b8,密码列表=0x0, 密码列表由id=0x0、mac标志=0、enc\U read\U ctx=0xace5438、read\U hash=0xabce1c8、expand=0x0、enc\U write\U ctx=0x9794468、write\U hash=0xc057018、compress=0x0、cert=0xe1f70d8、sid\U ctx长度=0、, sid_ctx='\000',session=0x7d54760,generate_session_id=0,verify_mode=0,verify_callback=0,info_callback=0,error=0,error_code=0,psk_client_callback=0, psk_服务器_回调=0,ctx=0xae8ce30,调试=0,验证_结果=20,ex_数据={sk=0x0,虚拟=0},客户端_CA=0x0,引用=1,选项=4,模式=4,最大证书列表=102400,第一个_数据包=0, 客户端版本=769,最大发送片段=16384,tlsext调试cb=0,tlsext调试参数=0x0,tlsext调试主机名=0x0,服务器名=0,tlsext调试状态类型=1,tlsext调试状态=0, tlsext_ocsp_ID=0x0,tlsext_ocsp_exts=0x0,tlsext_ocsp_resp=0x0,tlsext_ocsp_resplen=-1,tlsext_票证_预期=1,tlsext_ecpointformatlist_长度=3,tlsext_ecpointformatlist=0xac40bc8”“, tlsext_ellipticcurvelist_长度=50,tlsext_ellipticcurvelist=0x7b20878“,tlsext_不透明_prf_输入=0x0,tlsext_不透明_prf_输入=0,tlsext_会话_票证=0x0,tls_会话_票证_ext_cb=0, tls_session_ticket_ext_cb_arg=0x0,tls_session_secret_cb=0,tls_session_secret_cb_arg=0x0,initial_ctx=0xae8ce30,next_proto_protocolated=0x982fd50“Groups.History”, 下一个协议长度=111'o',srtp_配置文件=0x7373656d,srtp_配置文件=0x2e656761,tlsext_心跳=1953720648,tlsext_hb_待定=0,tlsext_hb_seq=424,重新协商=1232,srp_ctx={ SRP_cb_arg=0x0,TLS_ext_SRP_username_callback=0x6f697463,SRP_verify_param_callback=0x64695f6e,SRP_give_SRP_client_pwd_callback=0x4c4f202c,login=0x72742e44'',N=0x498,g=0x0,s=0xa, B=0xfc0301,A=0xfc03,A=0x0,B=0x0,v=0x0,信息=0x0,强度=0,srp_掩码=0},c++,c,linux,ssl,openssl,C++,C,Linux,Ssl,Openssl,我正试图弄明白为什么会出错。当我向服务器发出请求时(也仅在linux上),错误会随机发生。远程端是否已关闭连接(连接->生物->关机==1)?或者是内存错误(next_proto_congregated=0x982fd50“Groups.History”…看起来不像协议,尽管valgrind没有发现任何内存错误) 您是否正在进行多线程编程,同时访问不同线程上的套接字?如果是这样的话,请确保您没有在一个线程上写入它,也没有在另一个线程上关闭它。我以前犯过这样的错误,也见过像这样的车祸。在一个线程上

我正试图弄明白为什么会出错。当我向服务器发出请求时(也仅在linux上),错误会随机发生。远程端是否已关闭连接(连接->生物->关机==1)?或者是内存错误(next_proto_congregated=0x982fd50“Groups.History”…看起来不像协议,尽管valgrind没有发现任何内存错误)

您是否正在进行多线程编程,同时访问不同线程上的套接字?如果是这样的话,请确保您没有在一个线程上写入它,也没有在另一个线程上关闭它。我以前犯过这样的错误,也见过像这样的车祸。在一个线程上获得所有SSL调用需要一些恼人的重新编译

您是否正在进行多线程编程,同时访问不同线程上的套接字?如果是这样的话,请确保您没有在一个线程上写入它,也没有在另一个线程上关闭它。我以前犯过这样的错误,也见过像这样的车祸。在一个线程上获得所有SSL调用需要一些恼人的重新编译

如果由于多线程而面临问题,那么在两次调用SSL_shutdown()之间休眠一秒钟可能会有所帮助。下面的文章即使在单线程程序中也能做到这一点


如果由于多线程而面临问题,那么在两次调用SSL_shutdown()之间休眠一秒钟可能会有所帮助。下面的文章即使在单线程程序中也能做到这一点


我看到,如果服务器在设置TLS上下文时忽略调用
SSL\u CTX\u set\u session\u id\u context,则Linux上的openssl会出现故障

如果较新的TLS客户端(如Windows Server 2012)正在尝试重新连接TLS票证,则表明这导致了崩溃。您将看到的是,每隔一次连接尝试都会导致segfault,因为在连接良好后,客户端会使用TLS票证返回进行第二次连接


即使您没有使用TLS票证或会话缓存,请查看添加对
SSL\u CTX\u set\u session\u id\u上下文的调用是否可以解决此问题。

如果服务器忽略调用
SSL\u CTX\u set\u session\u id\u c,我在Linux Segfult上看到了openssl
(gdb) bt
#0  0x040010c2 in ?? () from /lib/ld-linux.so.2
#1  0x06a14a0b in write () at ../sysdeps/unix/syscall-template.S:82
#2  0x04154ae9 in ?? () from /lib/i386-linux-gnu/libcrypto.so.1.0.0
#3  0x041518e4 in BIO_write () from /lib/i386-linux-gnu/libcrypto.so.1.0.0
#4  0x040781f1 in ?? () from /lib/i386-linux-gnu/libssl.so.1.0.0
#5  0x040785ff in ?? () from /lib/i386-linux-gnu/libssl.so.1.0.0
#6  0x04078855 in ?? () from /lib/i386-linux-gnu/libssl.so.1.0.0
#7  0x04075e28 in ?? () from /lib/i386-linux-gnu/libssl.so.1.0.0
#8  0x0408d709 in SSL_write () from /lib/i386-linux-gnu/libssl.so.1.0.0
#9  0x0409c451 in ?? () from /lib/i386-linux-gnu/libssl.so.1.0.0
#10 0x041518e4 in BIO_write () from /lib/i386-linux-gnu/libcrypto.so.1.0.0
#11 0x0814b10f in SSL_Connection_send (connection=0x9ffbbd0) 
...

(gdb) print *connection->bio
$1 = {method = 0x40ac800, callback = 0, cb_arg = 0x0, init = 1, shutdown = 1, flags = 0, retry_reason = 0, num = 0, ptr = 0xa27e768, next_bio = 0x7b84ad0, prev_bio = 0x0, references = 1, num_read = 904, 
  num_write = 2870, ex_data = {sk = 0x0, dummy = 774321733}}

(gdb) print *connection->ssl
$2 = {version = 769, type = 4096, method = 0x40aacc0, rbio = 0x7b84ad0, wbio = 0x7b84ad0, bbio = 0x0, rwstate = 2, in_handshake = 0, handshake_func = 0x40738f0, server = 0, new_session = 0, quiet_shutdown = 0, 
  shutdown = 0, state = 3, rstate = 240, init_buf = 0x0, init_msg = 0xf5838e4, init_num = 0, init_off = 0, 
  packet = 0xf848ebb "\027\003\001\001\330HTTP/1.1 200 OK\r\nAccess-Control-Allow-Origin: *\r\nCache-Control: private, no-cache, no-store, must-revalidate\r\nContent-Type: text/javascript; charset=UTF-8\r\nETag: \"cacca674ed49d64124f812372ad59561"..., packet_length = 0, s2 = 0x0, s3 = 0xf3ea410, d1 = 0x0, read_ahead = 0, msg_callback = 0, msg_callback_arg = 0x0, hit = 0, param = 0x99f82b8, cipher_list = 0x0, 
  cipher_list_by_id = 0x0, mac_flags = 0, enc_read_ctx = 0xace5438, read_hash = 0xabce1c8, expand = 0x0, enc_write_ctx = 0x9794468, write_hash = 0xc057018, compress = 0x0, cert = 0xe1f70d8, sid_ctx_length = 0, 
  sid_ctx = '\000' , session = 0x7d54760, generate_session_id = 0, verify_mode = 0, verify_callback = 0, info_callback = 0, error = 0, error_code = 0, psk_client_callback = 0, 
  psk_server_callback = 0, ctx = 0xae8ce30, debug = 0, verify_result = 20, ex_data = {sk = 0x0, dummy = 0}, client_CA = 0x0, references = 1, options = 4, mode = 4, max_cert_list = 102400, first_packet = 0, 
  client_version = 769, max_send_fragment = 16384, tlsext_debug_cb = 0, tlsext_debug_arg = 0x0, tlsext_hostname = 0x0, servername_done = 0, tlsext_status_type = -1, tlsext_status_expected = 0, 
  tlsext_ocsp_ids = 0x0, tlsext_ocsp_exts = 0x0, tlsext_ocsp_resp = 0x0, tlsext_ocsp_resplen = -1, tlsext_ticket_expected = 1, tlsext_ecpointformatlist_length = 3, tlsext_ecpointformatlist = 0xac40bc8 "", 
  tlsext_ellipticcurvelist_length = 50, tlsext_ellipticcurvelist = 0x7b20878 "", tlsext_opaque_prf_input = 0x0, tlsext_opaque_prf_input_len = 0, tlsext_session_ticket = 0x0, tls_session_ticket_ext_cb = 0, 
  tls_session_ticket_ext_cb_arg = 0x0, tls_session_secret_cb = 0, tls_session_secret_cb_arg = 0x0, initial_ctx = 0xae8ce30, next_proto_negotiated = 0x982fd50 "Groups.History", 
  next_proto_negotiated_len = 111 'o', srtp_profiles = 0x7373656d, srtp_profile = 0x2e656761, tlsext_heartbeat = 1953720648, tlsext_hb_pending = 0, tlsext_hb_seq = 424, renegotiate = 1232, srp_ctx = {
    SRP_cb_arg = 0x0, TLS_ext_srp_username_callback = 0x6f697463, SRP_verify_param_callback = 0x64695f6e, SRP_give_srp_client_pwd_callback = 0x4c4f202c, login = 0x72742e44 "", N = 0x498, g = 0x0, s = 0xa, 
    B = 0xfc0301, A = 0xfc03, a = 0x0, b = 0x0, v = 0x0, info = 0x0, strength = 0, srp_Mask = 0}}