summaryrefslogtreecommitdiffstats
path: root/src/lib/kdb/fetch_mkey.c
diff options
context:
space:
mode:
authorTheodore Tso <tytso@mit.edu>1993-12-24 22:47:18 +0000
committerTheodore Tso <tytso@mit.edu>1993-12-24 22:47:18 +0000
commit7ae342446964c4ceba1cfe292fbe1fb75d766aa2 (patch)
treed8dfb842a9d63ae83491a7206a74a8fd3bb34a45 /src/lib/kdb/fetch_mkey.c
parentcfe0d7331bf6aa757e57e4e4b535db0f8b50cd00 (diff)
downloadkrb5-7ae342446964c4ceba1cfe292fbe1fb75d766aa2.tar.gz
krb5-7ae342446964c4ceba1cfe292fbe1fb75d766aa2.tar.xz
krb5-7ae342446964c4ceba1cfe292fbe1fb75d766aa2.zip
Make sure memory is freed on errors
git-svn-id: svn://anonsvn.mit.edu/krb5/trunk@3279 dc483132-0cff-0310-8789-dd5450dbe970
Diffstat (limited to 'src/lib/kdb/fetch_mkey.c')
-rw-r--r--src/lib/kdb/fetch_mkey.c7
1 files changed, 5 insertions, 2 deletions
diff --git a/src/lib/kdb/fetch_mkey.c b/src/lib/kdb/fetch_mkey.c
index 98dcac7a41..8c5ed8ccb4 100644
--- a/src/lib/kdb/fetch_mkey.c
+++ b/src/lib/kdb/fetch_mkey.c
@@ -147,9 +147,12 @@ OLDDECLARG(krb5_keyblock *,key)
goto errout;
}
if (fread((krb5_pointer) key->contents,
- sizeof(key->contents[0]), key->length, kf) != key->length)
+ sizeof(key->contents[0]), key->length, kf) != key->length) {
retval = KRB5_KDB_CANTREAD_STORED;
- else
+ memset(key->contents, 0, key->length);
+ free(key->contents);
+ key->contents = 0;
+ } else
retval = 0;
errout:
(void) fclose(kf);