PR: 2739
Submitted by: Robin Seggelmann <seggelmann@fh-muenster.de>
Fix padding bugs in Heartbeat support.
diff --git a/ssl/d1_both.c b/ssl/d1_both.c
index b96e34f..5c47c7c 100644
--- a/ssl/d1_both.c
+++ b/ssl/d1_both.c
@@ -1422,8 +1422,9 @@
*bp++ = TLS1_HB_RESPONSE;
s2n(payload, bp);
memcpy(bp, pl, payload);
+ bp += payload;
/* Random padding */
- RAND_pseudo_bytes(p, padding);
+ RAND_pseudo_bytes(bp, padding);
r = dtls1_write_bytes(s, TLS1_RT_HEARTBEAT, buffer, 3 + payload + padding);
diff --git a/ssl/t1_lib.c b/ssl/t1_lib.c
index f2e6b7c..9c76da1 100644
--- a/ssl/t1_lib.c
+++ b/ssl/t1_lib.c
@@ -2467,7 +2467,10 @@
*bp++ = TLS1_HB_RESPONSE;
s2n(payload, bp);
memcpy(bp, pl, payload);
-
+ bp += payload;
+ /* Random padding */
+ RAND_pseudo_bytes(bp, padding);
+
r = ssl3_write_bytes(s, TLS1_RT_HEARTBEAT, buffer, 3 + payload + padding);
if (r >= 0 && s->msg_callback)