From: Miek Gieben Date: Thu, 16 Dec 2004 15:12:35 +0000 (+0000) Subject: MALLOC checks, and statuscode X-Git-Tag: release-0.50~641 X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=38bd0a4ae3e9e05c0fbe3f69dab463ab1beb8d1d;p=thirdparty%2Fldns.git MALLOC checks, and statuscode --- diff --git a/ldns/error.h b/ldns/error.h index f3c18cc8..54af74dc 100644 --- a/ldns/error.h +++ b/ldns/error.h @@ -25,6 +25,7 @@ enum ldns_enum_status LDNS_STATUS_DDD_OVERFLOW = 4 * __X, LDNS_STATUS_PACKET_OVERFLOW = 5 * __X, LDNS_STATUS_INVALID_POINTER = 6 * __X + LDNS_STATUS_MEM_ERR = 7 * __X }; diff --git a/wire2host.c b/wire2host.c index 931d9983..06b3a013 100644 --- a/wire2host.c +++ b/wire2host.c @@ -295,6 +295,9 @@ ldns_wire2dname(ldns_rdf **dname, const uint8_t *wire, size_t max, size_t *pos) dname_pos++; dname_ar = XMALLOC(uint8_t, dname_pos); + if (!dname_ar) { + return LDNS_STATUS_MEM_ERR; + } memcpy(dname_ar, tmp_dname, dname_pos); *dname = ldns_rdf_new((uint16_t) dname_pos, LDNS_RDF_TYPE_DNAME, @@ -318,11 +321,16 @@ ldns_wire2rr(ldns_rr *rr, const uint8_t *wire, size_t max, size_t *pos, int section) { ldns_rdf *owner; - char *owner_str = XMALLOC(char, MAXDOMAINLEN); + char *owner_str; uint16_t rd_length; ldns_status status = LDNS_STATUS_OK; status = ldns_wire2dname(&owner, wire, max, pos); + char *owner_str = XMALLOC(char, MAXDOMAINLEN); + if (!owner_str) { + return LDNS_STATUS_MEM_ERR; + } + /* ldns_rr_set_owner(rr, owner); */