From f97807582cfe1735a67a39ff99369de034c416bc Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Love=20H=C3=B6rnquist=20=C3=85strand?= Date: Thu, 11 Dec 2008 04:59:58 +0000 Subject: [PATCH] krb5_copy_keyblock: on malloc error, free keyblock git-svn-id: svn://svn.h5l.se/heimdal/trunk/heimdal@24102 ec53bebd-3082-4978-b11e-865c3cabbd6b --- lib/krb5/keyblock.c | 13 +++++++++++-- 1 file changed, 11 insertions(+), 2 deletions(-) diff --git a/lib/krb5/keyblock.c b/lib/krb5/keyblock.c index aa6353d7c..337dc44ad 100644 --- a/lib/krb5/keyblock.c +++ b/lib/krb5/keyblock.c @@ -77,15 +77,24 @@ krb5_copy_keyblock (krb5_context context, const krb5_keyblock *inblock, krb5_keyblock **to) { + krb5_error_code ret; krb5_keyblock *k; + + *to = NULL; - k = malloc (sizeof(*k)); + k = calloc (1, sizeof(*k)); if (k == NULL) { krb5_set_error_message(context, ENOMEM, "malloc: out of memory"); return ENOMEM; } + + ret = krb5_copy_keyblock_contents (context, inblock, k); + if (ret) { + free(k); + return ret; + } *to = k; - return krb5_copy_keyblock_contents (context, inblock, k); + return 0; } krb5_enctype