[Top][All Lists]
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[GNUnet-SVN] r19782 - gnunet/src/dns
From: |
gnunet |
Subject: |
[GNUnet-SVN] r19782 - gnunet/src/dns |
Date: |
Mon, 13 Feb 2012 15:59:30 +0100 |
Author: grothoff
Date: 2012-02-13 15:59:30 +0100 (Mon, 13 Feb 2012)
New Revision: 19782
Modified:
gnunet/src/dns/gnunet-service-dns.c
Log:
-extra checks
Modified: gnunet/src/dns/gnunet-service-dns.c
===================================================================
--- gnunet/src/dns/gnunet-service-dns.c 2012-02-13 14:55:36 UTC (rev 19781)
+++ gnunet/src/dns/gnunet-service-dns.c 2012-02-13 14:59:30 UTC (rev 19782)
@@ -1394,7 +1394,7 @@
struct sockaddr_in6 v6;
struct sockaddr *so;
socklen_t salen;
-
+
if (dlen < sizeof (struct GNUNET_TUN_DnsHeader))
{
GNUNET_break_op (0);
@@ -1410,7 +1410,6 @@
memcpy (buf, dns, dlen);
dout = (struct GNUNET_TUN_DnsHeader*) buf;
dout->id = ts->my_id;
-
memset (&v4, 0, sizeof (v4));
memset (&v6, 0, sizeof (v6));
if (1 == inet_pton (AF_INET, dns_exit, &v4.sin_addr))
@@ -1423,8 +1422,8 @@
#endif
so = (struct sockaddr *) &v4;
ts->dnsout = get_request_socket (AF_INET);
- }
- if (1 == inet_pton (AF_INET6, dns_exit, &v6.sin6_addr))
+ }
+ else if (1 == inet_pton (AF_INET6, dns_exit, &v6.sin6_addr))
{
salen = sizeof (v6);
v6.sin6_family = AF_INET6;
@@ -1435,6 +1434,11 @@
so = (struct sockaddr *) &v6;
ts->dnsout = get_request_socket (AF_INET6);
}
+ else
+ {
+ GNUNET_break (0);
+ return GNUNET_SYSERR;
+ }
if (NULL == ts->dnsout)
{
GNUNET_log (GNUNET_ERROR_TYPE_ERROR,
@@ -1542,8 +1546,12 @@
&dns_exit)) ||
( (1 != inet_pton (AF_INET, dns_exit, &dns_exit4)) &&
(1 != inet_pton (AF_INET6, dns_exit, &dns_exit6)) ) ) )
+ {
GNUNET_log (GNUNET_ERROR_TYPE_ERROR,
_("Configured to provide DNS exit, but no valid DNS server
configured!\n"));
+ GNUNET_free_non_null (dns_exit);
+ dns_exit = NULL;
+ }
helper_argv[0] = GNUNET_strdup ("gnunet-dns");
if (GNUNET_SYSERR ==
[Prev in Thread] |
Current Thread |
[Next in Thread] |
- [GNUnet-SVN] r19782 - gnunet/src/dns,
gnunet <=