diff options
author | Martin Nagy <mnagy@redhat.com> | 2009-03-25 18:10:57 +0100 |
---|---|---|
committer | Martin Nagy <mnagy@redhat.com> | 2009-03-25 18:10:57 +0100 |
commit | a900898fce49cc70cc8721b5c550945c471d20b6 (patch) | |
tree | e6a177870fa96f1d7e9e2a877d32f18dd87de602 | |
parent | 743aed3ee3952c13f79289d1a7b8efe2aeaa20bf (diff) | |
download | ldap_driver-a900898fce49cc70cc8721b5c550945c471d20b6.tar.gz ldap_driver-a900898fce49cc70cc8721b5c550945c471d20b6.tar.xz ldap_driver-a900898fce49cc70cc8721b5c550945c471d20b6.zip |
Add a convenience macro for isc_mem_allocate().
-rw-r--r-- | ldap_helper.c | 13 | ||||
-rw-r--r-- | util.h | 9 |
2 files changed, 11 insertions, 11 deletions
diff --git a/ldap_helper.c b/ldap_helper.c index 73862e2..427191a 100644 --- a/ldap_helper.c +++ b/ldap_helper.c @@ -1613,11 +1613,7 @@ ldap_rdata_to_char_array(isc_mem_t *mctx, dns_rdata_t *rdata_head, vals_size = (rdata_count + 1) * sizeof(char *); - vals = isc_mem_allocate(mctx, vals_size); - if (vals == NULL) { - result = ISC_R_NOMEMORY; - goto cleanup; - } + CHECKED_MEM_ALLOCATE(mctx, vals, vals_size); memset(vals, 0, vals_size); rdata = rdata_head; @@ -1631,12 +1627,7 @@ ldap_rdata_to_char_array(isc_mem_t *mctx, dns_rdata_t *rdata_head, isc_buffer_usedregion(&buffer, ®ion); /* Now allocate the string with the right size. */ - vals[i] = isc_mem_allocate(mctx, region.length + 1); - if (vals[i] == NULL) { - result = ISC_R_NOMEMORY; - goto cleanup; - } - + CHECKED_MEM_ALLOCATE(mctx, vals[i], region.length + 1); memcpy(vals[i], region.base, region.length); vals[i][region.length] = '\0'; @@ -25,6 +25,15 @@ if (result != ISC_R_SUCCESS) goto cleanup; \ } while (0) +#define CHECKED_MEM_ALLOCATE(m, target_ptr, s) \ + do { \ + (target_ptr) = isc_mem_allocate((m), (s)); \ + if ((target_ptr) == NULL) { \ + result = ISC_R_NOMEMORY; \ + goto cleanup; \ + } \ + } while (0) + #define CHECKED_MEM_GET(m, target_ptr, s) \ do { \ (target_ptr) = isc_mem_get((m), (s)); \ |