summaryrefslogtreecommitdiff
path: root/packet.c
diff options
context:
space:
mode:
authordjm@openbsd.org <djm@openbsd.org>2019-01-04 03:23:00 +0000
committerDamien Miller <djm@mindrot.org>2019-01-04 14:29:37 +1100
commit8a8183474c41bd6cebaa917346b549af2239ba2f (patch)
tree559bb2f22c3c3463923274dd604c06363d7bffe5 /packet.c
parent5bed70afce0907b6217418d0655724c99b683d93 (diff)
upstream: fix memory leak of ciphercontext when rekeying; bz#2942
Patch from Markus Schmidt; ok markus@ OpenBSD-Commit-ID: 7877f1b82e249986f1ef98d0ae76ce987d332bdd
Diffstat (limited to 'packet.c')
-rw-r--r--packet.c6
1 files changed, 3 insertions, 3 deletions
diff --git a/packet.c b/packet.c
index e7e6d27a7..ded5a3201 100644
--- a/packet.c
+++ b/packet.c
@@ -1,4 +1,4 @@
1/* $OpenBSD: packet.c,v 1.278 2018/12/27 03:25:25 djm Exp $ */ 1/* $OpenBSD: packet.c,v 1.279 2019/01/04 03:23:00 djm Exp $ */
2/* 2/*
3 * Author: Tatu Ylonen <ylo@cs.hut.fi> 3 * Author: Tatu Ylonen <ylo@cs.hut.fi>
4 * Copyright (c) 1995 Tatu Ylonen <ylo@cs.hut.fi>, Espoo, Finland 4 * Copyright (c) 1995 Tatu Ylonen <ylo@cs.hut.fi>, Espoo, Finland
@@ -862,8 +862,6 @@ ssh_set_newkeys(struct ssh *ssh, int mode)
862 (unsigned long long)state->p_read.blocks, 862 (unsigned long long)state->p_read.blocks,
863 (unsigned long long)state->p_send.bytes, 863 (unsigned long long)state->p_send.bytes,
864 (unsigned long long)state->p_send.blocks); 864 (unsigned long long)state->p_send.blocks);
865 cipher_free(*ccp);
866 *ccp = NULL;
867 kex_free_newkeys(state->newkeys[mode]); 865 kex_free_newkeys(state->newkeys[mode]);
868 state->newkeys[mode] = NULL; 866 state->newkeys[mode] = NULL;
869 } 867 }
@@ -882,6 +880,8 @@ ssh_set_newkeys(struct ssh *ssh, int mode)
882 } 880 }
883 mac->enabled = 1; 881 mac->enabled = 1;
884 DBG(debug("cipher_init_context: %d", mode)); 882 DBG(debug("cipher_init_context: %d", mode));
883 cipher_free(*ccp);
884 *ccp = NULL;
885 if ((r = cipher_init(ccp, enc->cipher, enc->key, enc->key_len, 885 if ((r = cipher_init(ccp, enc->cipher, enc->key, enc->key_len,
886 enc->iv, enc->iv_len, crypt_type)) != 0) 886 enc->iv, enc->iv_len, crypt_type)) != 0)
887 return r; 887 return r;