From 6f5effa730dde49ec30e03e3bc403990affe9f03 Mon Sep 17 00:00:00 2001 From: Günther Deschner Date: Tue, 25 Apr 2006 12:53:38 +0000 Subject: r15243: Sorry for the breakage: * Fix the build without kerberos headers * Fix memleak in the krb5_address handling Guenther (This used to be commit 10e42117559d4bc6a34e41a94914bf6c65c3477f) --- source3/libsmb/clikrb5.c | 9 +++++++++ 1 file changed, 9 insertions(+) (limited to 'source3/libsmb/clikrb5.c') diff --git a/source3/libsmb/clikrb5.c b/source3/libsmb/clikrb5.c index 40ffec6f53..e0d6b09d97 100644 --- a/source3/libsmb/clikrb5.c +++ b/source3/libsmb/clikrb5.c @@ -1208,6 +1208,9 @@ done: krb5_error_code smb_krb5_free_addresses(krb5_context context, smb_krb5_addresses *addr) { krb5_error_code ret = 0; + if (addr == NULL) { + return ret; + } #if defined(HAVE_MAGIC_IN_KRB5_ADDRESS) && defined(HAVE_ADDRTYPE_IN_KRB5_ADDRESS) /* MIT */ krb5_free_addresses(context, addr->addrs); #elif defined(HAVE_ADDR_TYPE_IN_KRB5_ADDRESS) /* Heimdal */ @@ -1242,6 +1245,7 @@ done: addrs = (krb5_address **)SMB_MALLOC(sizeof(krb5_address *) * num_addr); if (addrs == NULL) { + SAFE_FREE(kerb_addr); return ENOMEM; } @@ -1250,6 +1254,7 @@ done: addrs[0] = (krb5_address *)SMB_MALLOC(sizeof(krb5_address)); if (addrs[0] == NULL) { SAFE_FREE(addrs); + SAFE_FREE(kerb_addr); return ENOMEM; } @@ -1260,6 +1265,7 @@ done: if (addrs[0]->contents == NULL) { SAFE_FREE(addrs[0]); SAFE_FREE(addrs); + SAFE_FREE(kerb_addr); return ENOMEM; } @@ -1271,6 +1277,7 @@ done: { addrs = (krb5_addresses *)SMB_MALLOC(sizeof(krb5_addresses)); if (addrs == NULL) { + SAFE_FREE(kerb_addr); return ENOMEM; } @@ -1280,6 +1287,7 @@ done: addrs->val = (krb5_address *)SMB_MALLOC(sizeof(krb5_address)); if (addrs->val == NULL) { SAFE_FREE(addrs); + SAFE_FREE(kerb_addr); return ENOMEM; } @@ -1289,6 +1297,7 @@ done: if (addrs->val[0].address.data == NULL) { SAFE_FREE(addrs->val); SAFE_FREE(addrs); + SAFE_FREE(kerb_addr); return ENOMEM; } -- cgit