From 967226a1bdde59ea137e8f0df871854ff7b91366 Mon Sep 17 00:00:00 2001 From: "djm@openbsd.org" Date: Sat, 4 Aug 2018 00:55:06 +0000 Subject: upstream: invalidate dh->priv_key after freeing it in error path; avoids unlikely double-free later. Reported by Viktor Dukhovni via https://github.com/openssh/openssh-portable/pull/96 feedback jsing@ tb@ OpenBSD-Commit-ID: e317eb17c3e05500ae851f279ef6486f0457c805 --- dh.c | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) (limited to 'dh.c') diff --git a/dh.c b/dh.c index faa19a166..ac8d5a0ae 100644 --- a/dh.c +++ b/dh.c @@ -1,4 +1,4 @@ -/* $OpenBSD: dh.c,v 1.65 2018/06/26 11:23:59 millert Exp $ */ +/* $OpenBSD: dh.c,v 1.66 2018/08/04 00:55:06 djm Exp $ */ /* * Copyright (c) 2000 Niels Provos. All rights reserved. * @@ -279,6 +279,7 @@ dh_gen_key(DH *dh, int need) if (DH_generate_key(dh) == 0 || !dh_pub_is_valid(dh, dh->pub_key)) { BN_clear_free(dh->priv_key); + dh->priv_key = NULL; return SSH_ERR_LIBCRYPTO_ERROR; } return 0; -- cgit v1.2.3