gnunet-svn
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[GNUnet-SVN] r17747 - gnunet/src/vpn


From: gnunet
Subject: [GNUnet-SVN] r17747 - gnunet/src/vpn
Date: Tue, 25 Oct 2011 16:20:53 +0200

Author: grothoff
Date: 2011-10-25 16:20:53 +0200 (Tue, 25 Oct 2011)
New Revision: 17747

Modified:
   gnunet/src/vpn/gnunet-service-dns.c
Log:
improve error reporting, fix zombie attack (#1848)

Modified: gnunet/src/vpn/gnunet-service-dns.c
===================================================================
--- gnunet/src/vpn/gnunet-service-dns.c 2011-10-25 13:48:34 UTC (rev 17746)
+++ gnunet/src/vpn/gnunet-service-dns.c 2011-10-25 14:20:53 UTC (rev 17747)
@@ -130,7 +130,7 @@
   {
     GNUNET_log (GNUNET_ERROR_TYPE_INFO,
                 "Delaying the hijacking, port is still %d!\n", dnsoutport);
-    GNUNET_SCHEDULER_add_delayed (GNUNET_TIME_UNIT_SECONDS, hijack, NULL);
+    GNUNET_SCHEDULER_add_delayed (GNUNET_TIME_UNIT_SECONDS, &hijack, NULL);
     return;
   }
 
@@ -152,7 +152,10 @@
       (proc =
        GNUNET_OS_start_process (NULL, NULL, "gnunet-helper-hijack-dns",
                                 "gnunet-hijack-dns", port_s, virt_dns, NULL)))
+  {
+    GNUNET_break (GNUNET_OK == GNUNET_OS_process_wait (proc));
     GNUNET_OS_process_close (proc);
+  }
   GNUNET_free (virt_dns);
 }
 
@@ -182,7 +185,7 @@
                                 "gnunet-hijack-dns", "-d", port_s, virt_dns,
                                 NULL)))
     {
-      GNUNET_OS_process_wait (proc);
+      GNUNET_break (GNUNET_OK == GNUNET_OS_process_wait (proc));
       GNUNET_OS_process_close (proc);
     }
   GNUNET_free (virt_dns);
@@ -762,7 +765,7 @@
           const struct GNUNET_MessageHeader *message __attribute__ ((unused)))
 {
   unhijack (dnsoutport);
-  GNUNET_SCHEDULER_add_delayed (GNUNET_TIME_UNIT_SECONDS, hijack, NULL);
+  GNUNET_SCHEDULER_add_delayed (GNUNET_TIME_UNIT_SECONDS, &hijack, NULL);
 
   GNUNET_SERVER_receive_done (client, GNUNET_OK);
 }
@@ -1036,9 +1039,11 @@
 #ifndef MINGW
   if (0 != ioctl (GNUNET_NETWORK_get_fd (dnsout), FIONREAD, &len))
   {
+    GNUNET_log_strerror (GNUNET_ERROR_TYPE_WARNING,
+                       "ioctl");
     unhijack (dnsoutport);
     if (GNUNET_YES == open_port ())
-      GNUNET_SCHEDULER_add_delayed (GNUNET_TIME_UNIT_SECONDS, hijack, NULL);
+      GNUNET_SCHEDULER_add_delayed (GNUNET_TIME_UNIT_SECONDS, &hijack, NULL);
     return;
   }
 #else
@@ -1054,9 +1059,11 @@
 
     if (r < 0)
     {
+      GNUNET_log_strerror (GNUNET_ERROR_TYPE_WARNING,
+                         "recvfrom");
       unhijack (dnsoutport);
       if (GNUNET_YES == open_port ())
-        GNUNET_SCHEDULER_add_delayed (GNUNET_TIME_UNIT_SECONDS, hijack, NULL);
+        GNUNET_SCHEDULER_add_delayed (GNUNET_TIME_UNIT_SECONDS, &hijack, NULL);
       return;
     }
 




reply via email to

[Prev in Thread] Current Thread [Next in Thread]