summaryrefslogtreecommitdiff
path: root/openbsd-compat/getrrsetbyname.c
diff options
context:
space:
mode:
authorDarren Tucker <dtucker@zip.com.au>2007-02-19 22:56:55 +1100
committerDarren Tucker <dtucker@zip.com.au>2007-02-19 22:56:55 +1100
commit89ee69e3c639b55b7577ba8fde66450446f74ea4 (patch)
tree36bd6f19e797181541d39013081a782d54e27358 /openbsd-compat/getrrsetbyname.c
parent53ced25d6185b4a02305e9d4bf648113155dde07 (diff)
- (dtucker) [openbsd-compat/getrrsetbyname.c] Don't attempt to calloc
an array for signatures when there are none since "calloc(0, n) returns NULL on some platforms (eg Tru64), which is explicitly permitted by POSIX. Diagnosis and patch by svallet genoscope.cns.fr.
Diffstat (limited to 'openbsd-compat/getrrsetbyname.c')
-rw-r--r--openbsd-compat/getrrsetbyname.c10
1 files changed, 6 insertions, 4 deletions
diff --git a/openbsd-compat/getrrsetbyname.c b/openbsd-compat/getrrsetbyname.c
index 6c86e02c2..07231d005 100644
--- a/openbsd-compat/getrrsetbyname.c
+++ b/openbsd-compat/getrrsetbyname.c
@@ -303,10 +303,12 @@ getrrsetbyname(const char *hostname, unsigned int rdclass,
303 } 303 }
304 304
305 /* allocate memory for signatures */ 305 /* allocate memory for signatures */
306 rrset->rri_sigs = calloc(rrset->rri_nsigs, sizeof(struct rdatainfo)); 306 if (rrset->rri_nsigs > 0) {
307 if (rrset->rri_sigs == NULL) { 307 rrset->rri_sigs = calloc(rrset->rri_nsigs, sizeof(struct rdatainfo));
308 result = ERRSET_NOMEMORY; 308 if (rrset->rri_sigs == NULL) {
309 goto fail; 309 result = ERRSET_NOMEMORY;
310 goto fail;
311 }
310 } 312 }
311 313
312 /* copy answers & signatures */ 314 /* copy answers & signatures */