summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorBen Lindstrom <mouring@eviladmin.org>2001-12-06 16:41:41 +0000
committerBen Lindstrom <mouring@eviladmin.org>2001-12-06 16:41:41 +0000
commit4cbc181983731e5c2a7a3bca2654f6b64b35925d (patch)
tree67b6ded51384969c07199b62cd4ec9131bcb0fc2
parent70a290c5f7a6ee9e24f5ddfee1c768550780e078 (diff)
- markus@cvs.openbsd.org 2001/11/21 15:51:24
[key.c] mem leak
-rw-r--r--ChangeLog5
-rw-r--r--key.c7
2 files changed, 8 insertions, 4 deletions
diff --git a/ChangeLog b/ChangeLog
index a9ca5ac4..c88aff27 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 57df5b93..220c476c 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 <openssl/evp.h>
@@ -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++;