summaryrefslogtreecommitdiffstats
path: root/ssl/s2_lib.c
diff options
context:
space:
mode:
authorBodo Möller <bodo@openssl.org>2000-12-18 11:35:32 +0000
committerBodo Möller <bodo@openssl.org>2000-12-18 11:35:32 +0000
commit3880cd35ad222b10367435f92ab547dce2629f22 (patch)
tree9c8764fbf3be1521697ab79b28623d723ef5f2a7 /ssl/s2_lib.c
parentcb38052b3a3e4eda010f5b9893292921493eb890 (diff)
Import s2_pkt.c wbuf fixes from OpenSSL_0_9_6-stable branch.
Diffstat (limited to 'ssl/s2_lib.c')
-rw-r--r--ssl/s2_lib.c8
1 files changed, 7 insertions, 1 deletions
diff --git a/ssl/s2_lib.c b/ssl/s2_lib.c
index a6f4db36c0..52a2b27963 100644
--- a/ssl/s2_lib.c
+++ b/ssl/s2_lib.c
@@ -273,10 +273,16 @@ int ssl2_new(SSL *s)
if ((s2=OPENSSL_malloc(sizeof *s2)) == NULL) goto err;
memset(s2,0,sizeof *s2);
+#if SSL2_MAX_RECORD_LENGTH_3_BYTE_HEADER + 3 > SSL2_MAX_RECORD_LENGTH_2_BYTE_HEADER + 2
+# error "assertion failed"
+#endif
+
if ((s2->rbuf=OPENSSL_malloc(
SSL2_MAX_RECORD_LENGTH_2_BYTE_HEADER+2)) == NULL) goto err;
+ /* wbuf needs one byte more because when using two-byte headers,
+ * we leave the first byte unused in do_ssl_write (s2_pkt.c) */
if ((s2->wbuf=OPENSSL_malloc(
- SSL2_MAX_RECORD_LENGTH_2_BYTE_HEADER+2)) == NULL) goto err;
+ SSL2_MAX_RECORD_LENGTH_2_BYTE_HEADER+3)) == NULL) goto err;
s->s2=s2;
ssl2_clear(s);