Maintenance

1. When getting the DH public key, initialize the P, G, and Pub pointers
to NULL, then set that we own the DH parameters flag. This allows
FreeSSL to correctly clean up the DH key.
This commit is contained in:
John Safranek
2019-11-14 14:42:58 -08:00
parent 22042830d6
commit 3cd5a97473

View File

@@ -19575,6 +19575,12 @@ static int GetDhPublicKey(WOLFSSL* ssl, const byte* input, word32 size,
int group = 0;
#endif
ssl->buffers.weOwnDH = 1;
ssl->buffers.serverDH_P.buffer = NULL;
ssl->buffers.serverDH_G.buffer = NULL;
ssl->buffers.serverDH_Pub.buffer = NULL;
/* p */
if ((args->idx - args->begin) + OPAQUE16_LEN > size) {
ERROR_OUT(BUFFER_ERROR, exit_gdpk);
@@ -19638,8 +19644,6 @@ static int GetDhPublicKey(WOLFSSL* ssl, const byte* input, word32 size,
length);
args->idx += length;
ssl->buffers.weOwnDH = 1;
/* pub */
if ((args->idx - args->begin) + OPAQUE16_LEN > size) {
ERROR_OUT(BUFFER_ERROR, exit_gdpk);