From 8bd3547b9956cad9aed40f01f7a7557f713dc7ab Mon Sep 17 00:00:00 2001 From: grothoff Date: Wed, 4 Jan 2012 12:36:43 +0000 Subject: -bugfixes git-svn-id: https://gnunet.org/svn/gnunet@18981 140774ce-b5e7-0310-ab8b-a85725594a96 --- src/dns/Makefile.am | 11 +++++++++++ src/dns/dnsparser.c | 6 +++--- src/dns/gnunet-service-dns_new.c | 9 +++++---- 3 files changed, 19 insertions(+), 7 deletions(-) (limited to 'src') diff --git a/src/dns/Makefile.am b/src/dns/Makefile.am index 674f4bf577..6322f2ca65 100644 --- a/src/dns/Makefile.am +++ b/src/dns/Makefile.am @@ -34,6 +34,9 @@ lib_LTLIBRARIES = \ bin_PROGRAMS = \ gnunet-service-dns gnunet-service-dns-new $(HIJACKBIN) +noinst_PROGRAMS = \ + gnunet-dns-monitor + plugin_LTLIBRARIES = \ libgnunet_plugin_block_dns.la @@ -55,6 +58,14 @@ gnunet_service_dns_LDADD = \ $(top_builddir)/src/dns/libgnunetdnsparser.la \ $(GN_LIBINTL) +gnunet_dns_monitor_SOURCES = \ + gnunet-dns-monitor.c +gnunet_dns_monitor_LDADD = \ + $(top_builddir)/src/dns/libgnunetdnsparser.la \ + $(top_builddir)/src/dns/libgnunetdnsnew.la \ + $(top_builddir)/src/util/libgnunetutil.la \ + $(GN_LIBINTL) + gnunet_service_dns_new_SOURCES = \ gnunet-service-dns_new.c gnunet_service_dns_new_LDADD = \ diff --git a/src/dns/dnsparser.c b/src/dns/dnsparser.c index 2cd728f37d..2a3fd55c08 100644 --- a/src/dns/dnsparser.c +++ b/src/dns/dnsparser.c @@ -82,7 +82,7 @@ parse_name (const char *udp_payload, ret = GNUNET_strdup (""); while (1) { - if (*off == udp_payload_length) + if (*off >= udp_payload_length) goto error; len = input[*off]; if (0 == len) @@ -98,7 +98,7 @@ parse_name (const char *udp_payload, &udp_payload[*off + 1]); GNUNET_free (ret); ret = tmp; - off += 1 + len; + *off += 1 + len; } else if ((64 | 128) == (len & (64 | 128)) ) { @@ -116,7 +116,7 @@ parse_name (const char *udp_payload, GNUNET_free (ret); GNUNET_free (xstr); ret = tmp; - off += 2; + *off += 2; /* pointers always terminate names */ break; } diff --git a/src/dns/gnunet-service-dns_new.c b/src/dns/gnunet-service-dns_new.c index 8918039d17..bf2368faa2 100644 --- a/src/dns/gnunet-service-dns_new.c +++ b/src/dns/gnunet-service-dns_new.c @@ -1049,10 +1049,11 @@ handle_client_response (void *cls GNUNET_UNUSED, rr->client_wait_list_length, 0); } - next_phase (rr); - GNUNET_SERVER_receive_done (client, GNUNET_OK); - return; - } + break; + } + next_phase (rr); + GNUNET_SERVER_receive_done (client, GNUNET_OK); + return; } /* odd, client was not on our list for the request, that ought to be an error */ -- cgit v1.2.3-18-g5258