diff --git a/port/posix/posix_transport_tcp.c b/port/posix/posix_transport_tcp.c index 9e652d4f8..a87bcf5ef 100644 --- a/port/posix/posix_transport_tcp.c +++ b/port/posix/posix_transport_tcp.c @@ -120,12 +120,12 @@ static int posixTransportTcp_Send(int fd, uint16_t* buffer_offset, return WH_ERROR_BADARGS; } + send_size = sizeof(uint32_t) + size; if(*buffer_offset == 0) { /* Initial write. Copy data to buffer */ /* Prepend packet data with the size in network order */ *packet_len = htonl((uint32_t)size); memcpy(packet_data, data, size); - send_size = sizeof(uint32_t) + size; } int remaining_size = send_size - *buffer_offset; diff --git a/src/wh_server_keystore.c b/src/wh_server_keystore.c index 565975dd3..8b2a378ae 100644 --- a/src/wh_server_keystore.c +++ b/src/wh_server_keystore.c @@ -1037,6 +1037,7 @@ static int _AesGcmKeyUnwrap(whServerContext* server, uint16_t serverKeyId, ret = wc_AesGcmSetKey(aes, serverKey, serverKeySz); if (ret != 0) { + wc_AesFree(aes); return ret; } @@ -1171,6 +1172,7 @@ static int _AesGcmDataUnwrap(whServerContext* server, uint16_t serverKeyId, ret = wc_AesGcmSetKey(aes, serverKey, serverKeySz); if (ret != 0) { + wc_AesFree(aes); return ret; }