gnunet-svn
[Top][All Lists]
Advanced

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

[GNUnet-SVN] r21224 - gnunet/src/transport


From: gnunet
Subject: [GNUnet-SVN] r21224 - gnunet/src/transport
Date: Wed, 2 May 2012 15:25:32 +0200

Author: wachs
Date: 2012-05-02 15:25:32 +0200 (Wed, 02 May 2012)
New Revision: 21224

Modified:
   gnunet/src/transport/plugin_transport_udp.c
   gnunet/src/transport/plugin_transport_unix.c
Log:
- fix


Modified: gnunet/src/transport/plugin_transport_udp.c
===================================================================
--- gnunet/src/transport/plugin_transport_udp.c 2012-05-02 13:24:13 UTC (rev 
21223)
+++ gnunet/src/transport/plugin_transport_udp.c 2012-05-02 13:25:32 UTC (rev 
21224)
@@ -380,11 +380,30 @@
     void **buf, size_t *added)
 {
   struct sockaddr_storage socket_address;
-  int ret = GNUNET_STRINGS_to_address_ip (addr, addrlen,
+
+  if ((NULL == addr) || (addrlen == 0))
+  {
+    GNUNET_break (0);
+    return GNUNET_SYSERR;
+  }
+
+  if ('\0' != addr[addrlen - 1])
+  {
+    return GNUNET_SYSERR;
+  }
+
+  if (strlen (addr) != addrlen - 1)
+  {
+    return GNUNET_SYSERR;
+  }
+
+  int ret = GNUNET_STRINGS_to_address_ip (addr, strlen (addr),
     &socket_address);
 
   if (ret != GNUNET_OK)
+  {
     return GNUNET_SYSERR;
+  }
 
   if (socket_address.ss_family == AF_INET)
   {
@@ -395,6 +414,7 @@
     u4->u4_port = in4->sin_port;
     *buf = u4;
     *added = sizeof (struct IPv4UdpAddress);
+    return GNUNET_OK;
   }
   else if (socket_address.ss_family == AF_INET6)
   {
@@ -405,6 +425,7 @@
     u6->u6_port = in6->sin6_port;
     *buf = u6;
     *added = sizeof (struct IPv6UdpAddress);
+    return GNUNET_OK;
   }
   return GNUNET_SYSERR;
 }

Modified: gnunet/src/transport/plugin_transport_unix.c
===================================================================
--- gnunet/src/transport/plugin_transport_unix.c        2012-05-02 13:24:13 UTC 
(rev 21223)
+++ gnunet/src/transport/plugin_transport_unix.c        2012-05-02 13:25:32 UTC 
(rev 21224)
@@ -1041,7 +1041,7 @@
  *
  * @param cls closure ('struct Plugin*')
  * @param addr string address
- * @param addrlen length of the address
+ * @param addrlen length of the address (strlen(addr) + '\0')
  * @param buf location to store the buffer
  *        If the function returns GNUNET_SYSERR, its contents are undefined.
  * @param added length of created address
@@ -1057,14 +1057,20 @@
     return GNUNET_SYSERR;
   }
 
-  char * tmp = GNUNET_malloc (addrlen + 1);
-  memcpy (tmp, addr, addrlen);
-  tmp[addrlen] = '\0';
+  if ('\0' != addr[addrlen - 1])
+  {
+    GNUNET_break (0);
+    return GNUNET_SYSERR;
+  }
 
-  //GNUNET_log (GNUNET_ERROR_TYPE_ERROR, "`%s'\n", tmp);
+  if (strlen (addr) != addrlen - 1)
+  {
+    GNUNET_break (0);
+    return GNUNET_SYSERR;
+  }
 
-  (*buf) = tmp;
-  (*added) = strlen (tmp) + 1;
+  (*buf) = strdup (addr);
+  (*added) = strlen (addr) + 1;
   return GNUNET_OK;
 }
 




reply via email to

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