(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:
@@ -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;
|
||||
}
|
||||
|
||||
|
Reference in New Issue
Block a user