summaryrefslogtreecommitdiff
path: root/src/lib/libssl
diff options
context:
space:
mode:
authormarkus <>2002-09-12 20:53:05 +0000
committermarkus <>2002-09-12 20:53:05 +0000
commit31392c89d1135cf2a416f97295f6d21681b3fbc4 (patch)
tree09ce0b27981cae5a4625fa506a24d5c79fc8a13a /src/lib/libssl
parent715a204e4615e4a70a466fcb383a9a57cad5e6b8 (diff)
downloadopenbsd-31392c89d1135cf2a416f97295f6d21681b3fbc4.tar.gz
openbsd-31392c89d1135cf2a416f97295f6d21681b3fbc4.tar.bz2
openbsd-31392c89d1135cf2a416f97295f6d21681b3fbc4.zip
import openssl-0.9.7-stable-SNAP-20020911 (without idea)
Diffstat (limited to 'src/lib/libssl')
-rw-r--r--src/lib/libssl/doc/openssl.txt2
-rw-r--r--src/lib/libssl/s3_clnt.c12
-rw-r--r--src/lib/libssl/s3_srvr.c8
-rw-r--r--src/lib/libssl/ssl.h6
-rw-r--r--src/lib/libssl/ssl_asn1.c5
-rw-r--r--src/lib/libssl/ssl_err.c6
-rw-r--r--src/lib/libssl/ssl_lib.c17
-rw-r--r--src/lib/libssl/ssl_locl.h2
-rw-r--r--src/lib/libssl/ssl_sess.c7
9 files changed, 53 insertions, 12 deletions
diff --git a/src/lib/libssl/doc/openssl.txt b/src/lib/libssl/doc/openssl.txt
index 5da519e7e4..432a17b66c 100644
--- a/src/lib/libssl/doc/openssl.txt
+++ b/src/lib/libssl/doc/openssl.txt
@@ -344,7 +344,7 @@ the extension.
344 344
345Examples: 345Examples:
346 346
347subjectAltName=email:copy,email:my@other.address,URL:http://my.url.here/ 347subjectAltName=email:copy,email:my@other.address,URI:http://my.url.here/
348subjectAltName=email:my@other.address,RID:1.2.3.4 348subjectAltName=email:my@other.address,RID:1.2.3.4
349 349
350Issuer Alternative Name. 350Issuer Alternative Name.
diff --git a/src/lib/libssl/s3_clnt.c b/src/lib/libssl/s3_clnt.c
index 2699b5863b..2b58482484 100644
--- a/src/lib/libssl/s3_clnt.c
+++ b/src/lib/libssl/s3_clnt.c
@@ -546,7 +546,11 @@ static int ssl3_client_hello(SSL *s)
546 *(p++)=i; 546 *(p++)=i;
547 if (i != 0) 547 if (i != 0)
548 { 548 {
549 die(i <= sizeof s->session->session_id); 549 if (i > sizeof s->session->session_id)
550 {
551 SSLerr(SSL_F_SSL3_CLIENT_HELLO, ERR_R_INTERNAL_ERROR);
552 goto err;
553 }
550 memcpy(p,s->session->session_id,i); 554 memcpy(p,s->session->session_id,i);
551 p+=i; 555 p+=i;
552 } 556 }
@@ -1598,7 +1602,11 @@ static int ssl3_send_client_key_exchange(SSL *s)
1598 SSL_MAX_MASTER_KEY_LENGTH); 1602 SSL_MAX_MASTER_KEY_LENGTH);
1599 EVP_EncryptFinal_ex(&ciph_ctx,&(epms[outl]),&padl); 1603 EVP_EncryptFinal_ex(&ciph_ctx,&(epms[outl]),&padl);
1600 outl += padl; 1604 outl += padl;
1601 die(outl <= sizeof epms); 1605 if (outl > sizeof epms)
1606 {
1607 SSLerr(SSL_F_SSL3_SEND_CLIENT_KEY_EXCHANGE, ERR_R_INTERNAL_ERROR);
1608 goto err;
1609 }
1602 EVP_CIPHER_CTX_cleanup(&ciph_ctx); 1610 EVP_CIPHER_CTX_cleanup(&ciph_ctx);
1603 1611
1604 /* KerberosWrapper.EncryptedPreMasterSecret */ 1612 /* KerberosWrapper.EncryptedPreMasterSecret */
diff --git a/src/lib/libssl/s3_srvr.c b/src/lib/libssl/s3_srvr.c
index 782b57f57a..20d716fb1b 100644
--- a/src/lib/libssl/s3_srvr.c
+++ b/src/lib/libssl/s3_srvr.c
@@ -965,7 +965,11 @@ static int ssl3_send_server_hello(SSL *s)
965 s->session->session_id_length=0; 965 s->session->session_id_length=0;
966 966
967 sl=s->session->session_id_length; 967 sl=s->session->session_id_length;
968 die(sl <= sizeof s->session->session_id); 968 if (sl > sizeof s->session->session_id)
969 {
970 SSLerr(SSL_F_SSL3_SEND_SERVER_HELLO, ERR_R_INTERNAL_ERROR);
971 return -1;
972 }
969 *(p++)=sl; 973 *(p++)=sl;
970 memcpy(p,s->session->session_id,sl); 974 memcpy(p,s->session->session_id,sl);
971 p+=sl; 975 p+=sl;
@@ -1588,7 +1592,7 @@ static int ssl3_get_client_key_exchange(SSL *s)
1588 /* Note that the length is checked again below, 1592 /* Note that the length is checked again below,
1589 ** after decryption 1593 ** after decryption
1590 */ 1594 */
1591 if(enc.pms_length > sizeof pms) 1595 if(enc_pms.length > sizeof pms)
1592 { 1596 {
1593 SSLerr(SSL_F_SSL3_GET_CLIENT_KEY_EXCHANGE, 1597 SSLerr(SSL_F_SSL3_GET_CLIENT_KEY_EXCHANGE,
1594 SSL_R_DATA_LENGTH_TOO_LONG); 1598 SSL_R_DATA_LENGTH_TOO_LONG);
diff --git a/src/lib/libssl/ssl.h b/src/lib/libssl/ssl.h
index d9949e8eb2..e9d1e896d7 100644
--- a/src/lib/libssl/ssl.h
+++ b/src/lib/libssl/ssl.h
@@ -1462,6 +1462,7 @@ void ERR_load_SSL_strings(void);
1462 1462
1463/* Function codes. */ 1463/* Function codes. */
1464#define SSL_F_CLIENT_CERTIFICATE 100 1464#define SSL_F_CLIENT_CERTIFICATE 100
1465#define SSL_F_CLIENT_FINISHED 238
1465#define SSL_F_CLIENT_HELLO 101 1466#define SSL_F_CLIENT_HELLO 101
1466#define SSL_F_CLIENT_MASTER_KEY 102 1467#define SSL_F_CLIENT_MASTER_KEY 102
1467#define SSL_F_D2I_SSL_SESSION 103 1468#define SSL_F_D2I_SSL_SESSION 103
@@ -1475,7 +1476,9 @@ void ERR_load_SSL_strings(void);
1475#define SSL_F_I2D_SSL_SESSION 111 1476#define SSL_F_I2D_SSL_SESSION 111
1476#define SSL_F_READ_N 112 1477#define SSL_F_READ_N 112
1477#define SSL_F_REQUEST_CERTIFICATE 113 1478#define SSL_F_REQUEST_CERTIFICATE 113
1479#define SSL_F_SERVER_FINISH 239
1478#define SSL_F_SERVER_HELLO 114 1480#define SSL_F_SERVER_HELLO 114
1481#define SSL_F_SERVER_VERIFY 240
1479#define SSL_F_SSL23_ACCEPT 115 1482#define SSL_F_SSL23_ACCEPT 115
1480#define SSL_F_SSL23_CLIENT_HELLO 116 1483#define SSL_F_SSL23_CLIENT_HELLO 116
1481#define SSL_F_SSL23_CONNECT 117 1484#define SSL_F_SSL23_CONNECT 117
@@ -1487,6 +1490,7 @@ void ERR_load_SSL_strings(void);
1487#define SSL_F_SSL2_ACCEPT 122 1490#define SSL_F_SSL2_ACCEPT 122
1488#define SSL_F_SSL2_CONNECT 123 1491#define SSL_F_SSL2_CONNECT 123
1489#define SSL_F_SSL2_ENC_INIT 124 1492#define SSL_F_SSL2_ENC_INIT 124
1493#define SSL_F_SSL2_GENERATE_KEY_MATERIAL 241
1490#define SSL_F_SSL2_PEEK 234 1494#define SSL_F_SSL2_PEEK 234
1491#define SSL_F_SSL2_READ 125 1495#define SSL_F_SSL2_READ 125
1492#define SSL_F_SSL2_READ_INTERNAL 236 1496#define SSL_F_SSL2_READ_INTERNAL 236
@@ -1523,6 +1527,7 @@ void ERR_load_SSL_strings(void);
1523#define SSL_F_SSL3_SEND_CLIENT_KEY_EXCHANGE 152 1527#define SSL_F_SSL3_SEND_CLIENT_KEY_EXCHANGE 152
1524#define SSL_F_SSL3_SEND_CLIENT_VERIFY 153 1528#define SSL_F_SSL3_SEND_CLIENT_VERIFY 153
1525#define SSL_F_SSL3_SEND_SERVER_CERTIFICATE 154 1529#define SSL_F_SSL3_SEND_SERVER_CERTIFICATE 154
1530#define SSL_F_SSL3_SEND_SERVER_HELLO 242
1526#define SSL_F_SSL3_SEND_SERVER_KEY_EXCHANGE 155 1531#define SSL_F_SSL3_SEND_SERVER_KEY_EXCHANGE 155
1527#define SSL_F_SSL3_SETUP_BUFFERS 156 1532#define SSL_F_SSL3_SETUP_BUFFERS 156
1528#define SSL_F_SSL3_SETUP_KEY_BLOCK 157 1533#define SSL_F_SSL3_SETUP_KEY_BLOCK 157
@@ -1747,6 +1752,7 @@ void ERR_load_SSL_strings(void);
1747#define SSL_R_SHORT_READ 219 1752#define SSL_R_SHORT_READ 219
1748#define SSL_R_SIGNATURE_FOR_NON_SIGNING_CERTIFICATE 220 1753#define SSL_R_SIGNATURE_FOR_NON_SIGNING_CERTIFICATE 220
1749#define SSL_R_SSL23_DOING_SESSION_ID_REUSE 221 1754#define SSL_R_SSL23_DOING_SESSION_ID_REUSE 221
1755#define SSL_R_SSL2_CONNECTION_ID_TOO_LONG 1114
1750#define SSL_R_SSL3_SESSION_ID_TOO_LONG 1113 1756#define SSL_R_SSL3_SESSION_ID_TOO_LONG 1113
1751#define SSL_R_SSL3_SESSION_ID_TOO_SHORT 222 1757#define SSL_R_SSL3_SESSION_ID_TOO_SHORT 222
1752#define SSL_R_SSLV3_ALERT_BAD_CERTIFICATE 1042 1758#define SSL_R_SSLV3_ALERT_BAD_CERTIFICATE 1042
diff --git a/src/lib/libssl/ssl_asn1.c b/src/lib/libssl/ssl_asn1.c
index 1638c6b525..3723fc2e37 100644
--- a/src/lib/libssl/ssl_asn1.c
+++ b/src/lib/libssl/ssl_asn1.c
@@ -294,10 +294,11 @@ SSL_SESSION *d2i_SSL_SESSION(SSL_SESSION **a, unsigned char **pp,
294 i=SSL2_MAX_SSL_SESSION_ID_LENGTH; 294 i=SSL2_MAX_SSL_SESSION_ID_LENGTH;
295 295
296 if (os.length > i) 296 if (os.length > i)
297 os.length=i; 297 os.length = i;
298 if (os.length > sizeof ret->session_id) /* can't happen */
299 os.length = sizeof ret->session_id;
298 300
299 ret->session_id_length=os.length; 301 ret->session_id_length=os.length;
300 die(os.length <= sizeof ret->session_id);
301 memcpy(ret->session_id,os.data,os.length); 302 memcpy(ret->session_id,os.data,os.length);
302 303
303 M_ASN1_D2I_get(osp,d2i_ASN1_OCTET_STRING); 304 M_ASN1_D2I_get(osp,d2i_ASN1_OCTET_STRING);
diff --git a/src/lib/libssl/ssl_err.c b/src/lib/libssl/ssl_err.c
index 0cad32c855..7067a745f3 100644
--- a/src/lib/libssl/ssl_err.c
+++ b/src/lib/libssl/ssl_err.c
@@ -67,6 +67,7 @@
67static ERR_STRING_DATA SSL_str_functs[]= 67static ERR_STRING_DATA SSL_str_functs[]=
68 { 68 {
69{ERR_PACK(0,SSL_F_CLIENT_CERTIFICATE,0), "CLIENT_CERTIFICATE"}, 69{ERR_PACK(0,SSL_F_CLIENT_CERTIFICATE,0), "CLIENT_CERTIFICATE"},
70{ERR_PACK(0,SSL_F_CLIENT_FINISHED,0), "CLIENT_FINISHED"},
70{ERR_PACK(0,SSL_F_CLIENT_HELLO,0), "CLIENT_HELLO"}, 71{ERR_PACK(0,SSL_F_CLIENT_HELLO,0), "CLIENT_HELLO"},
71{ERR_PACK(0,SSL_F_CLIENT_MASTER_KEY,0), "CLIENT_MASTER_KEY"}, 72{ERR_PACK(0,SSL_F_CLIENT_MASTER_KEY,0), "CLIENT_MASTER_KEY"},
72{ERR_PACK(0,SSL_F_D2I_SSL_SESSION,0), "d2i_SSL_SESSION"}, 73{ERR_PACK(0,SSL_F_D2I_SSL_SESSION,0), "d2i_SSL_SESSION"},
@@ -80,7 +81,9 @@ static ERR_STRING_DATA SSL_str_functs[]=
80{ERR_PACK(0,SSL_F_I2D_SSL_SESSION,0), "i2d_SSL_SESSION"}, 81{ERR_PACK(0,SSL_F_I2D_SSL_SESSION,0), "i2d_SSL_SESSION"},
81{ERR_PACK(0,SSL_F_READ_N,0), "READ_N"}, 82{ERR_PACK(0,SSL_F_READ_N,0), "READ_N"},
82{ERR_PACK(0,SSL_F_REQUEST_CERTIFICATE,0), "REQUEST_CERTIFICATE"}, 83{ERR_PACK(0,SSL_F_REQUEST_CERTIFICATE,0), "REQUEST_CERTIFICATE"},
84{ERR_PACK(0,SSL_F_SERVER_FINISH,0), "SERVER_FINISH"},
83{ERR_PACK(0,SSL_F_SERVER_HELLO,0), "SERVER_HELLO"}, 85{ERR_PACK(0,SSL_F_SERVER_HELLO,0), "SERVER_HELLO"},
86{ERR_PACK(0,SSL_F_SERVER_VERIFY,0), "SERVER_VERIFY"},
84{ERR_PACK(0,SSL_F_SSL23_ACCEPT,0), "SSL23_ACCEPT"}, 87{ERR_PACK(0,SSL_F_SSL23_ACCEPT,0), "SSL23_ACCEPT"},
85{ERR_PACK(0,SSL_F_SSL23_CLIENT_HELLO,0), "SSL23_CLIENT_HELLO"}, 88{ERR_PACK(0,SSL_F_SSL23_CLIENT_HELLO,0), "SSL23_CLIENT_HELLO"},
86{ERR_PACK(0,SSL_F_SSL23_CONNECT,0), "SSL23_CONNECT"}, 89{ERR_PACK(0,SSL_F_SSL23_CONNECT,0), "SSL23_CONNECT"},
@@ -92,6 +95,7 @@ static ERR_STRING_DATA SSL_str_functs[]=
92{ERR_PACK(0,SSL_F_SSL2_ACCEPT,0), "SSL2_ACCEPT"}, 95{ERR_PACK(0,SSL_F_SSL2_ACCEPT,0), "SSL2_ACCEPT"},
93{ERR_PACK(0,SSL_F_SSL2_CONNECT,0), "SSL2_CONNECT"}, 96{ERR_PACK(0,SSL_F_SSL2_CONNECT,0), "SSL2_CONNECT"},
94{ERR_PACK(0,SSL_F_SSL2_ENC_INIT,0), "SSL2_ENC_INIT"}, 97{ERR_PACK(0,SSL_F_SSL2_ENC_INIT,0), "SSL2_ENC_INIT"},
98{ERR_PACK(0,SSL_F_SSL2_GENERATE_KEY_MATERIAL,0), "SSL2_GENERATE_KEY_MATERIAL"},
95{ERR_PACK(0,SSL_F_SSL2_PEEK,0), "SSL2_PEEK"}, 99{ERR_PACK(0,SSL_F_SSL2_PEEK,0), "SSL2_PEEK"},
96{ERR_PACK(0,SSL_F_SSL2_READ,0), "SSL2_READ"}, 100{ERR_PACK(0,SSL_F_SSL2_READ,0), "SSL2_READ"},
97{ERR_PACK(0,SSL_F_SSL2_READ_INTERNAL,0), "SSL2_READ_INTERNAL"}, 101{ERR_PACK(0,SSL_F_SSL2_READ_INTERNAL,0), "SSL2_READ_INTERNAL"},
@@ -128,6 +132,7 @@ static ERR_STRING_DATA SSL_str_functs[]=
128{ERR_PACK(0,SSL_F_SSL3_SEND_CLIENT_KEY_EXCHANGE,0), "SSL3_SEND_CLIENT_KEY_EXCHANGE"}, 132{ERR_PACK(0,SSL_F_SSL3_SEND_CLIENT_KEY_EXCHANGE,0), "SSL3_SEND_CLIENT_KEY_EXCHANGE"},
129{ERR_PACK(0,SSL_F_SSL3_SEND_CLIENT_VERIFY,0), "SSL3_SEND_CLIENT_VERIFY"}, 133{ERR_PACK(0,SSL_F_SSL3_SEND_CLIENT_VERIFY,0), "SSL3_SEND_CLIENT_VERIFY"},
130{ERR_PACK(0,SSL_F_SSL3_SEND_SERVER_CERTIFICATE,0), "SSL3_SEND_SERVER_CERTIFICATE"}, 134{ERR_PACK(0,SSL_F_SSL3_SEND_SERVER_CERTIFICATE,0), "SSL3_SEND_SERVER_CERTIFICATE"},
135{ERR_PACK(0,SSL_F_SSL3_SEND_SERVER_HELLO,0), "SSL3_SEND_SERVER_HELLO"},
131{ERR_PACK(0,SSL_F_SSL3_SEND_SERVER_KEY_EXCHANGE,0), "SSL3_SEND_SERVER_KEY_EXCHANGE"}, 136{ERR_PACK(0,SSL_F_SSL3_SEND_SERVER_KEY_EXCHANGE,0), "SSL3_SEND_SERVER_KEY_EXCHANGE"},
132{ERR_PACK(0,SSL_F_SSL3_SETUP_BUFFERS,0), "SSL3_SETUP_BUFFERS"}, 137{ERR_PACK(0,SSL_F_SSL3_SETUP_BUFFERS,0), "SSL3_SETUP_BUFFERS"},
133{ERR_PACK(0,SSL_F_SSL3_SETUP_KEY_BLOCK,0), "SSL3_SETUP_KEY_BLOCK"}, 138{ERR_PACK(0,SSL_F_SSL3_SETUP_KEY_BLOCK,0), "SSL3_SETUP_KEY_BLOCK"},
@@ -355,6 +360,7 @@ static ERR_STRING_DATA SSL_str_reasons[]=
355{SSL_R_SHORT_READ ,"short read"}, 360{SSL_R_SHORT_READ ,"short read"},
356{SSL_R_SIGNATURE_FOR_NON_SIGNING_CERTIFICATE,"signature for non signing certificate"}, 361{SSL_R_SIGNATURE_FOR_NON_SIGNING_CERTIFICATE,"signature for non signing certificate"},
357{SSL_R_SSL23_DOING_SESSION_ID_REUSE ,"ssl23 doing session id reuse"}, 362{SSL_R_SSL23_DOING_SESSION_ID_REUSE ,"ssl23 doing session id reuse"},
363{SSL_R_SSL2_CONNECTION_ID_TOO_LONG ,"ssl2 connection id too long"},
358{SSL_R_SSL3_SESSION_ID_TOO_LONG ,"ssl3 session id too long"}, 364{SSL_R_SSL3_SESSION_ID_TOO_LONG ,"ssl3 session id too long"},
359{SSL_R_SSL3_SESSION_ID_TOO_SHORT ,"ssl3 session id too short"}, 365{SSL_R_SSL3_SESSION_ID_TOO_SHORT ,"ssl3 session id too short"},
360{SSL_R_SSLV3_ALERT_BAD_CERTIFICATE ,"sslv3 alert bad certificate"}, 366{SSL_R_SSLV3_ALERT_BAD_CERTIFICATE ,"sslv3 alert bad certificate"},
diff --git a/src/lib/libssl/ssl_lib.c b/src/lib/libssl/ssl_lib.c
index ab172aeaec..4bc4ce5b3a 100644
--- a/src/lib/libssl/ssl_lib.c
+++ b/src/lib/libssl/ssl_lib.c
@@ -1405,13 +1405,24 @@ void SSL_CTX_free(SSL_CTX *a)
1405 abort(); /* ok */ 1405 abort(); /* ok */
1406 } 1406 }
1407#endif 1407#endif
1408 CRYPTO_free_ex_data(CRYPTO_EX_INDEX_SSL_CTX, a, &a->ex_data);
1409 1408
1409 /*
1410 * Free internal session cache. However: the remove_cb() may reference
1411 * the ex_data of SSL_CTX, thus the ex_data store can only be removed
1412 * after the sessions were flushed.
1413 * As the ex_data handling routines might also touch the session cache,
1414 * the most secure solution seems to be: empty (flush) the cache, then
1415 * free ex_data, then finally free the cache.
1416 * (See ticket [openssl.org #212].)
1417 */
1410 if (a->sessions != NULL) 1418 if (a->sessions != NULL)
1411 {
1412 SSL_CTX_flush_sessions(a,0); 1419 SSL_CTX_flush_sessions(a,0);
1420
1421 CRYPTO_free_ex_data(CRYPTO_EX_INDEX_SSL_CTX, a, &a->ex_data);
1422
1423 if (a->sessions != NULL)
1413 lh_free(a->sessions); 1424 lh_free(a->sessions);
1414 } 1425
1415 if (a->cert_store != NULL) 1426 if (a->cert_store != NULL)
1416 X509_STORE_free(a->cert_store); 1427 X509_STORE_free(a->cert_store);
1417 if (a->cipher_list != NULL) 1428 if (a->cipher_list != NULL)
diff --git a/src/lib/libssl/ssl_locl.h b/src/lib/libssl/ssl_locl.h
index fe4ac839cf..dd6c7a7323 100644
--- a/src/lib/libssl/ssl_locl.h
+++ b/src/lib/libssl/ssl_locl.h
@@ -510,7 +510,7 @@ STACK_OF(SSL_CIPHER) *ssl_get_ciphers_by_id(SSL *s);
510int ssl_verify_alarm_type(long type); 510int ssl_verify_alarm_type(long type);
511 511
512int ssl2_enc_init(SSL *s, int client); 512int ssl2_enc_init(SSL *s, int client);
513void ssl2_generate_key_material(SSL *s); 513int ssl2_generate_key_material(SSL *s);
514void ssl2_enc(SSL *s,int send_data); 514void ssl2_enc(SSL *s,int send_data);
515void ssl2_mac(SSL *s,unsigned char *mac,int send_data); 515void ssl2_mac(SSL *s,unsigned char *mac,int send_data);
516SSL_CIPHER *ssl2_get_cipher_by_char(const unsigned char *p); 516SSL_CIPHER *ssl2_get_cipher_by_char(const unsigned char *p);
diff --git a/src/lib/libssl/ssl_sess.c b/src/lib/libssl/ssl_sess.c
index 8bfc382bb6..ca1a7427be 100644
--- a/src/lib/libssl/ssl_sess.c
+++ b/src/lib/libssl/ssl_sess.c
@@ -251,7 +251,12 @@ int ssl_get_new_session(SSL *s, int session)
251 ss->session_id_length=0; 251 ss->session_id_length=0;
252 } 252 }
253 253
254 die(s->sid_ctx_length <= sizeof ss->sid_ctx); 254 if (s->sid_ctx_length > sizeof ss->sid_ctx)
255 {
256 SSLerr(SSL_F_SSL_GET_NEW_SESSION, ERR_R_INTERNAL_ERROR);
257 SSL_SESSION_free(ss);
258 return 0;
259 }
255 memcpy(ss->sid_ctx,s->sid_ctx,s->sid_ctx_length); 260 memcpy(ss->sid_ctx,s->sid_ctx,s->sid_ctx_length);
256 ss->sid_ctx_length=s->sid_ctx_length; 261 ss->sid_ctx_length=s->sid_ctx_length;
257 s->session=ss; 262 s->session=ss;