Tidy up finish_message logic.
dtls1_finish_message should NULL *out_msg before calling OPENSSL_free,
rather than asking ssl3_complete_message to do it. ssl3_finish_message
has no need to call it at all.
Change-Id: I22054217073690ab391cd19bf9993b1ceada41fd
Reviewed-on: https://boringssl-review.googlesource.com/12231
CQ-Verified: CQ bot account: commit-bot@chromium.org <commit-bot@chromium.org>
Reviewed-by: Steven Valdez <svaldez@google.com>
Reviewed-by: David Benjamin <davidben@google.com>
Commit-Queue: David Benjamin <davidben@google.com>
diff --git a/ssl/d1_both.c b/ssl/d1_both.c
index 82ee58c..0364664 100644
--- a/ssl/d1_both.c
+++ b/ssl/d1_both.c
@@ -738,6 +738,7 @@
int dtls1_finish_message(SSL *ssl, CBB *cbb, uint8_t **out_msg,
size_t *out_len) {
+ *out_msg = NULL;
if (!CBB_finish(cbb, out_msg, out_len) ||
*out_len < DTLS1_HM_HEADER_LENGTH) {
OPENSSL_PUT_ERROR(SSL, ERR_R_INTERNAL_ERROR);
diff --git a/ssl/s3_both.c b/ssl/s3_both.c
index 4cb37bc..9f9dfad 100644
--- a/ssl/s3_both.c
+++ b/ssl/s3_both.c
@@ -209,9 +209,9 @@
size_t *out_len) {
if (!CBB_finish(cbb, out_msg, out_len)) {
OPENSSL_PUT_ERROR(SSL, ERR_R_INTERNAL_ERROR);
- OPENSSL_free(*out_msg);
return 0;
}
+
return 1;
}
@@ -231,7 +231,7 @@
}
int ssl_complete_message(SSL *ssl, CBB *cbb) {
- uint8_t *msg = NULL;
+ uint8_t *msg;
size_t len;
if (!ssl->method->finish_message(ssl, cbb, &msg, &len) ||
!ssl->method->queue_message(ssl, msg, len)) {