summaryrefslogtreecommitdiff
path: root/third-party/pjproject/patches/0048-r5576-svn-backport-tls-crash.patch
blob: b5edc71f41bb6d8a54164683cb778da584c8fc18 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
Index: /pjproject/trunk/pjlib/src/pj/ssl_sock_ossl.c
===================================================================
--- a/pjlib/src/pj/ssl_sock_ossl.c	(revision 5564)
+++ b/pjlib/src/pj/ssl_sock_ossl.c	(revision 5565)
@@ -145,5 +145,6 @@
     SSL_STATE_NULL,
     SSL_STATE_HANDSHAKING,
-    SSL_STATE_ESTABLISHED
+    SSL_STATE_ESTABLISHED,
+    SSL_STATE_ERROR
 };
 
@@ -1907,4 +1908,8 @@
 			buf->len += size_;
     		
+                    if (status != PJ_SUCCESS) {
+                        ssock->ssl_state = SSL_STATE_ERROR;
+                    }
+
 		    ret = (*ssock->param.cb.on_data_read)(ssock, buf->data,
 							  buf->len, status,
@@ -2658,5 +2663,9 @@
 	/* Current cipher */
 	cipher = SSL_get_current_cipher(ssock->ossl_ssl);
-	info->cipher = (SSL_CIPHER_get_id(cipher) & 0x00FFFFFF);
+	if (cipher) {
+	    info->cipher = (SSL_CIPHER_get_id(cipher) & 0x00FFFFFF);
+	} else {
+	    info->cipher = PJ_TLS_UNKNOWN_CIPHER;
+	}
 
 	/* Remote address */