TLS: Fix an allocator mismatch.

secrets_rsa_decrypt returns GLib-allocated memory. Free it using g_free.

Change-Id: Icf0a3a1fc53c112511f9e7024714b6596569e737
Reviewed-on: https://code.wireshark.org/review/31665
Reviewed-by: Gerald Combs <gerald@wireshark.org>
Petri-Dish: Gerald Combs <gerald@wireshark.org>
Tested-by: Petri Dish Buildbot
Reviewed-by: Peter Wu <peter@lekensteyn.nl>
This commit is contained in:
Gerald Combs 2019-01-21 12:42:52 -08:00 committed by Peter Wu
parent dcaa429a34
commit 6fc342234c
1 changed files with 10 additions and 2 deletions

View File

@ -3638,13 +3638,21 @@ ssl_decrypt_pre_master_secret(SslDecryptSession *ssl_session,
if (pms.size != 48) {
ssl_debug_printf("%s wrong pre_master_secret length (%d, expected %d)\n",
G_STRFUNC, pms.size, 48);
gnutls_free(pms.data);
if (pk) {
gnutls_free(pms.data);
} else {
g_free(pms.data);
}
return FALSE;
}
ssl_session->pre_master_secret.data = (guint8 *)wmem_memdup(wmem_file_scope(), pms.data, 48);
ssl_session->pre_master_secret.data_len = 48;
gnutls_free(pms.data);
if (pk) {
gnutls_free(pms.data);
} else {
g_free(pms.data);
}
ssl_print_string("pre master secret", &ssl_session->pre_master_secret);
/* Remove the master secret if it was there.