Switch another malloc to bssl::Array.
Change-Id: I10eb66f195636a9bf953c841ea13e187e6f94aad
Reviewed-on: https://boringssl-review.googlesource.com/c/boringssl/+/48506
Reviewed-by: Adam Langley <agl@google.com>
diff --git a/ssl/d1_both.cc b/ssl/d1_both.cc
index a081740..f8c04b7 100644
--- a/ssl/d1_both.cc
+++ b/ssl/d1_both.cc
@@ -778,11 +778,9 @@
dtls1_update_mtu(ssl);
- int ret = -1;
- uint8_t *packet = (uint8_t *)OPENSSL_malloc(ssl->d1->mtu);
- if (packet == NULL) {
- OPENSSL_PUT_ERROR(SSL, ERR_R_MALLOC_FAILURE);
- goto err;
+ Array<uint8_t> packet;
+ if (!packet.Init(ssl->d1->mtu)) {
+ return -1;
}
while (ssl->d1->outgoing_written < ssl->d1->outgoing_messages_len) {
@@ -790,31 +788,26 @@
uint32_t old_offset = ssl->d1->outgoing_offset;
size_t packet_len;
- if (!seal_next_packet(ssl, packet, &packet_len, ssl->d1->mtu)) {
- goto err;
+ if (!seal_next_packet(ssl, packet.data(), &packet_len, packet.size())) {
+ return -1;
}
- int bio_ret = BIO_write(ssl->wbio.get(), packet, packet_len);
+ int bio_ret = BIO_write(ssl->wbio.get(), packet.data(), packet_len);
if (bio_ret <= 0) {
// Retry this packet the next time around.
ssl->d1->outgoing_written = old_written;
ssl->d1->outgoing_offset = old_offset;
ssl->s3->rwstate = SSL_ERROR_WANT_WRITE;
- ret = bio_ret;
- goto err;
+ return bio_ret;
}
}
if (BIO_flush(ssl->wbio.get()) <= 0) {
ssl->s3->rwstate = SSL_ERROR_WANT_WRITE;
- goto err;
+ return -1;
}
- ret = 1;
-
-err:
- OPENSSL_free(packet);
- return ret;
+ return 1;
}
int dtls1_flush_flight(SSL *ssl) {