summaryrefslogtreecommitdiffstats
path: root/src
diff options
context:
space:
mode:
authorEzra Peisach <epeisach@mit.edu>2008-08-14 04:55:14 +0000
committerEzra Peisach <epeisach@mit.edu>2008-08-14 04:55:14 +0000
commit9a8dbb4c8c3d1af6168fb37b23efee1146242e8c (patch)
treeb8fe105201f9c9d0f95e8d885a3885aca07f9d26 /src
parentf4c8a41e68aa417d6ab95a41333507cf34f3f89c (diff)
downloadkrb5-9a8dbb4c8c3d1af6168fb37b23efee1146242e8c.tar.gz
krb5-9a8dbb4c8c3d1af6168fb37b23efee1146242e8c.tar.xz
krb5-9a8dbb4c8c3d1af6168fb37b23efee1146242e8c.zip
krb5_fcc_read_addrs returns pointer to released memory on malloc failre
In cleanup code on malloc failure, addresses are released including pointer to the krb5_address * - but the freed value is returned to caller. Clear pointer. git-svn-id: svn://anonsvn.mit.edu/krb5/trunk@20654 dc483132-0cff-0310-8789-dd5450dbe970
Diffstat (limited to 'src')
-rw-r--r--src/lib/krb5/ccache/cc_file.c1
1 files changed, 1 insertions, 0 deletions
diff --git a/src/lib/krb5/ccache/cc_file.c b/src/lib/krb5/ccache/cc_file.c
index 0fe099c45..f69d4929c 100644
--- a/src/lib/krb5/ccache/cc_file.c
+++ b/src/lib/krb5/ccache/cc_file.c
@@ -539,6 +539,7 @@ krb5_fcc_read_addrs(krb5_context context, krb5_ccache id, krb5_address ***addrs)
(*addrs)[i] = (krb5_address *) malloc(sizeof(krb5_address));
if ((*addrs)[i] == NULL) {
krb5_free_addresses(context, *addrs);
+ *addrs = 0;
return KRB5_CC_NOMEM;
}
(*addrs)[i]->contents = NULL;