diff options
author | Wojciech Kosior <kwojtus@protonmail.com> | 2020-04-30 21:34:49 +0200 |
---|---|---|
committer | Wojciech Kosior <kwojtus@protonmail.com> | 2020-04-30 21:34:49 +0200 |
commit | 745975a28e808f4c6824803f604ebdaa0116aa67 (patch) | |
tree | 7112b834c3ffddc8ecc9fb4a0b1277929e8d3f8c /src | |
parent | 0255b17ec5dc51e1da81f976f342385dce709a83 (diff) | |
download | 0tdns-745975a28e808f4c6824803f604ebdaa0116aa67.tar.gz 0tdns-745975a28e808f4c6824803f604ebdaa0116aa67.zip |
don't segfault on failed query
Diffstat (limited to 'src')
-rw-r--r-- | src/0tDNS.c | 10 |
1 files changed, 7 insertions, 3 deletions
diff --git a/src/0tDNS.c b/src/0tDNS.c index 92c6bd9..f0a6dfe 100644 --- a/src/0tDNS.c +++ b/src/0tDNS.c @@ -53,6 +53,9 @@ void examine_result(const char *query, struct ub_result *result) printf("DNS rcode: %d\n", result->rcode); + if(!result->havedata) + return; + num = 0; for(i=0; result->data[i]; i++) { printf("result data element %d has length %d\n", @@ -130,9 +133,10 @@ void ztdns_try_resolve(struct ub_ctx *ctx, const char *name) { 1 /* CLASS IN (internet) */, &result); if(rc) printf("resolve error: %s\n", ub_strerror(rc)); - else + else { examine_result(name, result); - ub_resolve_free(result); + ub_resolve_free(result); + } } struct ztdns_resolver { @@ -182,7 +186,7 @@ struct ztdns_instance { */ const char *resolvers_addresses[] = {"8.8.8.8", "8.8.4.4", "1.1.1.1"}; const char *resolvers_names[] = {"google", "google", "cloudflare"}; -#define RESOLVERS_COUNT 3 +#define RESOLVERS_COUNT 4 int main(int argc, char** argv) { |