From 08687cb0677a3e480feb9874e37cde695983825a Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Love=20H=C3=B6rnquist=20=C3=85strand?= Date: Fri, 17 Mar 2006 22:12:13 +0000 Subject: [PATCH] (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 --- lib/krb5/addr_families.c | 9 +++++++++ 1 file changed, 9 insertions(+) diff --git a/lib/krb5/addr_families.c b/lib/krb5/addr_families.c index 35d4f92b0..31fcea136 100644 --- a/lib/krb5/addr_families.c +++ b/lib/krb5/addr_families.c @@ -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; }