diff options
author | Nikos Mavrogiannopoulos <nmav@redhat.com> | 2017-01-03 13:49:18 +0100 |
---|---|---|
committer | Nikos Mavrogiannopoulos <nmav@redhat.com> | 2017-01-03 16:14:18 +0100 |
commit | 3cad570427a96c30af9b6410961d0fa20bd47629 (patch) | |
tree | cccfef09526355d7c9bf6233f2c7ce8078519e9f /lib/auth | |
parent | c4dedf52dca628f48a57c3df91c0bf784c0a738f (diff) | |
download | gnutls-3cad570427a96c30af9b6410961d0fa20bd47629.tar.gz |
proc_server_kx: eliminated leak on error path
Issue found using oss-fuzz:
https://bugs.chromium.org/p/oss-fuzz/issues/detail?id=272
Signed-off-by: Nikos Mavrogiannopoulos <nmav@redhat.com>
Diffstat (limited to 'lib/auth')
-rw-r--r-- | lib/auth/dh_common.c | 3 |
1 files changed, 3 insertions, 0 deletions
diff --git a/lib/auth/dh_common.c b/lib/auth/dh_common.c index f9e2b36649..405579b926 100644 --- a/lib/auth/dh_common.c +++ b/lib/auth/dh_common.c @@ -262,8 +262,11 @@ _gnutls_proc_dh_common_server_kx(gnutls_session_t session, if (_gnutls_mpi_init_scan_nz(&session->key.dh_params.params[DH_P], data_p, _n_p) != 0) { gnutls_assert(); + /* we release now because session->key.dh_params.params_nr is not yet set */ + _gnutls_mpi_release(&session->key.dh_params.params[DH_G]); return GNUTLS_E_MPI_SCAN_FAILED; } + session->key.dh_params.params_nr = 3; /* include empty q */ session->key.dh_params.algo = GNUTLS_PK_DH; |