summaryrefslogtreecommitdiff
path: root/usr/src/cmd/ssh/libssh/common/packet.c
diff options
context:
space:
mode:
authorJan Pechanec <Jan.Pechanec@Sun.COM>2009-04-28 03:40:41 -0700
committerJan Pechanec <Jan.Pechanec@Sun.COM>2009-04-28 03:40:41 -0700
commit8caf082f3daf088f1c2d8d364a3bd1af21c1c770 (patch)
treead1d98b0745b27cc3ed284c1b1a718380ea44459 /usr/src/cmd/ssh/libssh/common/packet.c
parent26594249d18446b4a5ff8ff6d34611c718757251 (diff)
downloadillumos-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.c11
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);
}