From: Jelte Jansen Date: Tue, 8 Mar 2005 14:28:02 +0000 (+0000) Subject: some null checks X-Git-Tag: release-0.50~287 X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=48038ece77f57840b0c2f2af7a35d778dbfa3805;p=thirdparty%2Fldns.git some null checks --- diff --git a/host2str.c b/host2str.c index a491d4d7..db227831 100644 --- a/host2str.c +++ b/host2str.c @@ -830,52 +830,55 @@ ldns_rr2buffer_str(ldns_buffer *output, ldns_rr *rr) ldns_lookup_table *lt; const ldns_rr_descriptor *descriptor; - if (ldns_rr_owner(rr)) { - status = ldns_rdf2buffer_str_dname(output, ldns_rr_owner(rr)); - } - if (status != LDNS_STATUS_OK) { - return status; - } - - /* ttl should not be printed if it is a question, but we don't know that anymore... (do we?)*/ - /* TODO: better way */ - if (ldns_rr_rd_count(rr) > 0) { - ldns_buffer_printf(output, "\t%d", ldns_rr_ttl(rr)); - } - - lt = ldns_lookup_by_id(ldns_rr_classes, ldns_rr_get_class(rr)); - if (lt) { - ldns_buffer_printf(output, "\t%s\t", lt->name); + if (!rr) { + ldns_buffer_printf(output, " "); } else { - ldns_buffer_printf(output, "\tCLASS%d\t", ldns_rr_get_class(rr)); - } + if (ldns_rr_owner(rr)) { + status = ldns_rdf2buffer_str_dname(output, ldns_rr_owner(rr)); + } + if (status != LDNS_STATUS_OK) { + return status; + } - descriptor = ldns_rr_descript(ldns_rr_get_type(rr)); + /* ttl should not be printed if it is a question, but we don't know that anymore... (do we?)*/ + /* TODO: better way */ + if (ldns_rr_rd_count(rr) > 0) { + ldns_buffer_printf(output, "\t%d", ldns_rr_ttl(rr)); + } + + lt = ldns_lookup_by_id(ldns_rr_classes, ldns_rr_get_class(rr)); + if (lt) { + ldns_buffer_printf(output, "\t%s\t", lt->name); + } else { + ldns_buffer_printf(output, "\tCLASS%d\t", ldns_rr_get_class(rr)); + } - if (descriptor->_name) { - ldns_buffer_printf(output, "%s\t", descriptor->_name); - } else { - /* exceptions for qtype */ - if (ldns_rr_get_type(rr) == 251) { - ldns_buffer_printf(output, "IXFR "); - } else if (ldns_rr_get_type(rr) == 252) { - ldns_buffer_printf(output, "AXFR "); - } else if (ldns_rr_get_type(rr) == 253) { - ldns_buffer_printf(output, "MAILB "); - } else if (ldns_rr_get_type(rr) == 254) { - ldns_buffer_printf(output, "MAILA "); - } else if (ldns_rr_get_type(rr) == 255) { - ldns_buffer_printf(output, "ANY "); + descriptor = ldns_rr_descript(ldns_rr_get_type(rr)); + + if (descriptor->_name) { + ldns_buffer_printf(output, "%s\t", descriptor->_name); } else { - ldns_buffer_printf(output, "TYPE%d\t", ldns_rr_get_type(rr)); + /* exceptions for qtype */ + if (ldns_rr_get_type(rr) == 251) { + ldns_buffer_printf(output, "IXFR "); + } else if (ldns_rr_get_type(rr) == 252) { + ldns_buffer_printf(output, "AXFR "); + } else if (ldns_rr_get_type(rr) == 253) { + ldns_buffer_printf(output, "MAILB "); + } else if (ldns_rr_get_type(rr) == 254) { + ldns_buffer_printf(output, "MAILA "); + } else if (ldns_rr_get_type(rr) == 255) { + ldns_buffer_printf(output, "ANY "); + } else { + ldns_buffer_printf(output, "TYPE%d\t", ldns_rr_get_type(rr)); + } + } + + for (i = 0; i < ldns_rr_rd_count(rr); i++) { + status = ldns_rdf2buffer_str(output, ldns_rr_rdf(rr, i)); + ldns_buffer_printf(output, " "); } } - - for (i = 0; i < ldns_rr_rd_count(rr); i++) { - status = ldns_rdf2buffer_str(output, ldns_rr_rdf(rr, i)); - ldns_buffer_printf(output, " "); - } - return ldns_buffer_status(output); } diff --git a/resolver.c b/resolver.c index 315f7c2e..79dc6056 100644 --- a/resolver.c +++ b/resolver.c @@ -210,9 +210,8 @@ ldns_status ldns_resolver_push_nameserver_rr(ldns_resolver *r, ldns_rr *rr) { ldns_rdf *address; - - if (ldns_rr_get_type(rr) != LDNS_RR_TYPE_A && - ldns_rr_get_type(rr) != LDNS_RR_TYPE_AAAA) { + if ((!rr) || (ldns_rr_get_type(rr) != LDNS_RR_TYPE_A && + ldns_rr_get_type(rr) != LDNS_RR_TYPE_AAAA)) { return LDNS_STATUS_ERR; } address = ldns_rr_rdf(rr, 0); /* extract the ip number */