Fix SSL state transitions.
Submitted by: Nagendra Modadugu
This commit is contained in:
parent
e710de12ce
commit
e65bcbcef0
3 changed files with 10 additions and 6 deletions
4
CHANGES
4
CHANGES
|
@ -705,6 +705,10 @@
|
||||||
|
|
||||||
Changes between 0.9.8h and 0.9.8i [xx XXX xxxx]
|
Changes between 0.9.8h and 0.9.8i [xx XXX xxxx]
|
||||||
|
|
||||||
|
*) Fix a state transitition in s3_srvr.c and d1_srvr.c
|
||||||
|
(was using SSL3_ST_CW_CLNT_HELLO_B, should be ..._ST_SW_SRVR_...).
|
||||||
|
[Nagendra Modadugu]
|
||||||
|
|
||||||
*) The fix in 0.9.8c that supposedly got rid of unsafe
|
*) The fix in 0.9.8c that supposedly got rid of unsafe
|
||||||
double-checked locking was incomplete for RSA blinding,
|
double-checked locking was incomplete for RSA blinding,
|
||||||
addressing just one layer of what turns out to have been
|
addressing just one layer of what turns out to have been
|
||||||
|
|
|
@ -725,7 +725,7 @@ int dtls1_send_server_hello(SSL *s)
|
||||||
|
|
||||||
d = dtls1_set_message_header(s, d, SSL3_MT_SERVER_HELLO, l, 0, l);
|
d = dtls1_set_message_header(s, d, SSL3_MT_SERVER_HELLO, l, 0, l);
|
||||||
|
|
||||||
s->state=SSL3_ST_CW_CLNT_HELLO_B;
|
s->state=SSL3_ST_SW_SRVR_HELLO_B;
|
||||||
/* number of bytes to write */
|
/* number of bytes to write */
|
||||||
s->init_num=p-buf;
|
s->init_num=p-buf;
|
||||||
s->init_off=0;
|
s->init_off=0;
|
||||||
|
@ -734,7 +734,7 @@ int dtls1_send_server_hello(SSL *s)
|
||||||
dtls1_buffer_message(s, 0);
|
dtls1_buffer_message(s, 0);
|
||||||
}
|
}
|
||||||
|
|
||||||
/* SSL3_ST_CW_CLNT_HELLO_B */
|
/* SSL3_ST_SW_SRVR_HELLO_B */
|
||||||
return(dtls1_do_write(s,SSL3_RT_HANDSHAKE));
|
return(dtls1_do_write(s,SSL3_RT_HANDSHAKE));
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -758,7 +758,7 @@ int dtls1_send_server_done(SSL *s)
|
||||||
dtls1_buffer_message(s, 0);
|
dtls1_buffer_message(s, 0);
|
||||||
}
|
}
|
||||||
|
|
||||||
/* SSL3_ST_CW_CLNT_HELLO_B */
|
/* SSL3_ST_SW_SRVR_DONE_B */
|
||||||
return(dtls1_do_write(s,SSL3_RT_HANDSHAKE));
|
return(dtls1_do_write(s,SSL3_RT_HANDSHAKE));
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -1208,13 +1208,13 @@ int ssl3_send_server_hello(SSL *s)
|
||||||
*(d++)=SSL3_MT_SERVER_HELLO;
|
*(d++)=SSL3_MT_SERVER_HELLO;
|
||||||
l2n3(l,d);
|
l2n3(l,d);
|
||||||
|
|
||||||
s->state=SSL3_ST_CW_CLNT_HELLO_B;
|
s->state=SSL3_ST_SW_CLNT_HELLO_B;
|
||||||
/* number of bytes to write */
|
/* number of bytes to write */
|
||||||
s->init_num=p-buf;
|
s->init_num=p-buf;
|
||||||
s->init_off=0;
|
s->init_off=0;
|
||||||
}
|
}
|
||||||
|
|
||||||
/* SSL3_ST_CW_CLNT_HELLO_B */
|
/* SSL3_ST_SW_CLNT_HELLO_B */
|
||||||
return(ssl3_do_write(s,SSL3_RT_HANDSHAKE));
|
return(ssl3_do_write(s,SSL3_RT_HANDSHAKE));
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -1238,7 +1238,7 @@ int ssl3_send_server_done(SSL *s)
|
||||||
s->init_off=0;
|
s->init_off=0;
|
||||||
}
|
}
|
||||||
|
|
||||||
/* SSL3_ST_CW_CLNT_HELLO_B */
|
/* SSL3_ST_SW_SRVR_DONE_B */
|
||||||
return(ssl3_do_write(s,SSL3_RT_HANDSHAKE));
|
return(ssl3_do_write(s,SSL3_RT_HANDSHAKE));
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
Loading…
Reference in a new issue