[Top][All Lists]
[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;
}
[Prev in Thread] |
Current Thread |
[Next in Thread] |
- [GNUnet-SVN] r21224 - gnunet/src/transport,
gnunet <=