diff options
author | Jan Pechanec <Jan.Pechanec@Sun.COM> | 2009-04-28 03:40:41 -0700 |
---|---|---|
committer | Jan Pechanec <Jan.Pechanec@Sun.COM> | 2009-04-28 03:40:41 -0700 |
commit | 8caf082f3daf088f1c2d8d364a3bd1af21c1c770 (patch) | |
tree | ad1d98b0745b27cc3ed284c1b1a718380ea44459 /usr/src/cmd/ssh/libssh/common/packet.c | |
parent | 26594249d18446b4a5ff8ff6d34611c718757251 (diff) | |
download | illumos-joyent-8caf082f3daf088f1c2d8d364a3bd1af21c1c770.tar.gz |
6616927 preserve MAC contexts between packets
Diffstat (limited to 'usr/src/cmd/ssh/libssh/common/packet.c')
-rw-r--r-- | usr/src/cmd/ssh/libssh/common/packet.c | 11 |
1 files changed, 7 insertions, 4 deletions
diff --git a/usr/src/cmd/ssh/libssh/common/packet.c b/usr/src/cmd/ssh/libssh/common/packet.c index 1635a2b75a..0906cc94e1 100644 --- a/usr/src/cmd/ssh/libssh/common/packet.c +++ b/usr/src/cmd/ssh/libssh/common/packet.c @@ -36,7 +36,7 @@ * THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. */ /* - * Copyright 2008 Sun Microsystems, Inc. All rights reserved. + * Copyright 2009 Sun Microsystems, Inc. All rights reserved. * Use is subject to license terms. */ @@ -601,7 +601,7 @@ set_newkeys(int mode) enc = &newkeys[mode]->enc; mac = &newkeys[mode]->mac; comp = &newkeys[mode]->comp; - if (mac->md != NULL) + if (mac_init(mac) == 0) mac->enabled = 1; #ifdef PACKET_DEBUG debug("new encryption key:\n"); @@ -671,12 +671,15 @@ free_keys(Newkeys *keys) enc = &keys->enc; mac = &keys->mac; comp = &keys->comp; - memset(mac->key, 0, mac->key_len); xfree(enc->name); xfree(enc->iv); xfree(enc->key); - xfree(mac->name); + + memset(mac->key, 0, mac->key_len); xfree(mac->key); + xfree(mac->name); + mac_clear(mac); + xfree(comp->name); xfree(keys); } |