From 4cbc181983731e5c2a7a3bca2654f6b64b35925d Mon Sep 17 00:00:00 2001 From: Ben Lindstrom Date: Thu, 6 Dec 2001 16:41:41 +0000 Subject: - markus@cvs.openbsd.org 2001/11/21 15:51:24 [key.c] mem leak --- ChangeLog | 5 ++++- key.c | 7 ++++--- 2 files changed, 8 insertions(+), 4 deletions(-) diff --git a/ChangeLog b/ChangeLog index a9ca5ac43..c88aff274 100644 --- a/ChangeLog +++ b/ChangeLog @@ -20,6 +20,9 @@ [deattack.c radix.c] kill more registers millert@ ok + - markus@cvs.openbsd.org 2001/11/21 15:51:24 + [key.c] + mem leak 20011126 - (tim) [contrib/cygwin/README, openbsd-compat/bsd-cygwin_util.c, @@ -6942,4 +6945,4 @@ - Wrote replacements for strlcpy and mkdtemp - Released 1.0pre1 -$Id: ChangeLog,v 1.1672 2001/12/06 16:39:56 mouring Exp $ +$Id: ChangeLog,v 1.1673 2001/12/06 16:41:41 mouring Exp $ diff --git a/key.c b/key.c index 57df5b93a..220c476cd 100644 --- a/key.c +++ b/key.c @@ -32,7 +32,7 @@ * THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. */ #include "includes.h" -RCSID("$OpenBSD: key.c,v 1.33 2001/10/04 14:34:16 markus Exp $"); +RCSID("$OpenBSD: key.c,v 1.34 2001/11/21 15:51:24 markus Exp $"); #include @@ -420,14 +420,15 @@ key_read(Key *ret, char **cpp) n = uudecode(cp, blob, len); if (n < 0) { error("key_read: uudecode %s failed", cp); + xfree(blob); return -1; } k = key_from_blob(blob, n); + xfree(blob); if (k == NULL) { error("key_read: key_from_blob %s failed", cp); return -1; } - xfree(blob); if (k->type != type) { error("key_read: type mismatch: encoding error"); key_free(k); @@ -454,9 +455,9 @@ key_read(Key *ret, char **cpp) #endif } /*XXXX*/ + key_free(k); if (success != 1) break; - key_free(k); /* advance cp: skip whitespace and data */ while (*cp == ' ' || *cp == '\t') cp++; -- cgit v1.2.3