From: Miek Gieben Date: Wed, 6 Apr 2005 08:53:54 +0000 (+0000) Subject: correct placement of the freeing of rdata again X-Git-Tag: release-0.50~164 X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=f5d116f6cb98366c52ae42f608b8927a8b8ea235;p=thirdparty%2Fldns.git correct placement of the freeing of rdata again --- diff --git a/rr.c b/rr.c index 6c0a94a8..aab63ae2 100644 --- a/rr.c +++ b/rr.c @@ -143,7 +143,6 @@ ldns_rr_new_frm_str(const char *str) ldns_buffer_new_frm_data( rd_buf, rdata, strlen(rdata)); - /* FREE(rdata); NO! */ ldns_rr_set_owner(new, ldns_dname_new_frm_str(owner)); FREE(owner); /* ttl might be more complicated, like 2h, or 3d5h */ @@ -168,6 +167,7 @@ ldns_rr_new_frm_str(const char *str) if (!r) { printf("rdf conversion mismatch\n"); + FREE(rdata); /* return what we've got */ return new; } @@ -175,6 +175,7 @@ ldns_rr_new_frm_str(const char *str) if (r_cnt > r_max) { printf("rdf data overflow"); + FREE(rdata); return new; } r_cnt++; @@ -186,10 +187,12 @@ ldns_rr_new_frm_str(const char *str) rd); if (!r) { printf("rdf conversion mismatch\n"); + FREE(rdata); return new; } ldns_rr_push_rdf(new, r); + FREE(rdata); return new; }