(krb5_free_addresses): reset val,len in address when free-ing.

Fixes Coverity NetBSD bug #2605
(krb5_parse_address): reset val,len before possibly return errors
Fixes Coverity NetBSD bug #2605


git-svn-id: svn://svn.h5l.se/heimdal/trunk/heimdal@16793 ec53bebd-3082-4978-b11e-865c3cabbd6b
This commit is contained in:
Love Hörnquist Åstrand
2006-03-17 22:12:13 +00:00
parent a1143ef753
commit 08687cb067

View File

@@ -930,11 +930,18 @@ krb5_parse_address(krb5_context context,
int error;
int save_errno;
addresses->len = 0;
addresses->val = NULL;
for(i = 0; i < num_addrs; i++) {
if(at[i].parse_addr) {
krb5_address addr;
if((*at[i].parse_addr)(context, string, &addr) == 0) {
ALLOC_SEQ(addresses, 1);
if (addresses->val == NULL) {
krb5_set_error_string(context, "malloc: out of memory");
return ENOMEM;
}
addresses->val[0] = addr;
return 0;
}
@@ -1047,6 +1054,8 @@ krb5_free_addresses(krb5_context context,
for(i = 0; i < addresses->len; i++)
krb5_free_address(context, &addresses->val[i]);
free(addresses->val);
addresses->len = 0;
addresses->val = NULL;
return 0;
}