summaryrefslogtreecommitdiff
path: root/ssl/s3_pkt.c
diff options
context:
space:
mode:
authorMatt Caswell <matt@openssl.org>2014-05-12 00:38:37 +0100
committerMatt Caswell <matt@openssl.org>2014-05-12 00:38:37 +0100
commit7b06ac7593cf4cecfc2510989ed504d808a130b5 (patch)
tree7c607f1d3fc97f8e821cb567679c49058619cfdf /ssl/s3_pkt.c
parent3b3ecce14197e00a99244fe73802d3ed89ef242a (diff)
downloadopenssl-new-7b06ac7593cf4cecfc2510989ed504d808a130b5.tar.gz
Fixed NULL pointer dereference. See PR#3321
Diffstat (limited to 'ssl/s3_pkt.c')
-rw-r--r--ssl/s3_pkt.c7
1 files changed, 4 insertions, 3 deletions
diff --git a/ssl/s3_pkt.c b/ssl/s3_pkt.c
index ad9dc5154a..5efc03e5ec 100644
--- a/ssl/s3_pkt.c
+++ b/ssl/s3_pkt.c
@@ -880,9 +880,6 @@ static int do_ssl3_write(SSL *s, int type, const unsigned char *buf,
SSL3_BUFFER *wb=&(s->s3->wbuf);
SSL_SESSION *sess;
- if (wb->buf == NULL)
- if (!ssl3_setup_write_buffer(s))
- return -1;
/* first check if there is a SSL3_BUFFER still being written
* out. This will happen with non blocking IO */
@@ -898,6 +895,10 @@ static int do_ssl3_write(SSL *s, int type, const unsigned char *buf,
/* if it went, fall through and send more stuff */
}
+ if (wb->buf == NULL)
+ if (!ssl3_setup_write_buffer(s))
+ return -1;
+
if (len == 0 && !create_empty_fragment)
return 0;