aboutsummaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
authorWojciech Kosior <kwojtus@protonmail.com>2020-04-30 21:34:49 +0200
committerWojciech Kosior <kwojtus@protonmail.com>2020-04-30 21:34:49 +0200
commit745975a28e808f4c6824803f604ebdaa0116aa67 (patch)
tree7112b834c3ffddc8ecc9fb4a0b1277929e8d3f8c /src
parent0255b17ec5dc51e1da81f976f342385dce709a83 (diff)
download0tdns-745975a28e808f4c6824803f604ebdaa0116aa67.tar.gz
0tdns-745975a28e808f4c6824803f604ebdaa0116aa67.zip
don't segfault on failed query
Diffstat (limited to 'src')
-rw-r--r--src/0tDNS.c10
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)
{