splitting 'struct GNUNET_CRYPTO_EccPublicKey' into one struct for signing and another...
[oweals/gnunet.git] / src / transport / plugin_transport_udp.c
index 90053b5759ca23b512c5e328c51f0104f19f315b..a344ec0cfc6ee050b8d41a5317afbe25e31f69e2 100644 (file)
@@ -559,7 +559,7 @@ udp_address_to_string (void *cls, const void *addr, size_t addrlen)
   uint16_t port;
   uint32_t options;
 
-  if (addrlen == sizeof (struct IPv6UdpAddress))
+  if ((NULL != addr) && (addrlen == sizeof (struct IPv6UdpAddress)))
   {
     t6 = addr;
     af = AF_INET6;
@@ -568,7 +568,7 @@ udp_address_to_string (void *cls, const void *addr, size_t addrlen)
     memcpy (&a6, &t6->ipv6_addr, sizeof (a6));
     sb = &a6;
   }
-  else if (addrlen == sizeof (struct IPv4UdpAddress))
+  else if ((NULL != addr) && (addrlen == sizeof (struct IPv4UdpAddress)))
   {
     t4 = addr;
     af = AF_INET;
@@ -1392,6 +1392,12 @@ create_session (struct Plugin *plugin, const struct GNUNET_PeerIdentity *target,
   struct sockaddr_in6 *v6;
   size_t len;
 
+  if (NULL == addr)
+  {
+       GNUNET_break (0);
+       return NULL;
+  }
+
   switch (addrlen)
   {
   case sizeof (struct IPv4UdpAddress):
@@ -1478,6 +1484,7 @@ session_cmp_it (void *cls,
   {
     struct IPv4UdpAddress * u4 = NULL;
     u4 = (struct IPv4UdpAddress *) address->address;
+    GNUNET_assert (NULL != u4);
     const struct sockaddr_in *s4 = (const struct sockaddr_in *) s->sock_addr;
     if ((0 == memcmp ((const void *) &u4->ipv4_addr,(const void *) &s4->sin_addr, sizeof (struct in_addr))) &&
         (u4->u4_port == s4->sin_port))
@@ -1492,6 +1499,7 @@ session_cmp_it (void *cls,
   {
     struct IPv6UdpAddress * u6 = NULL;
     u6 = (struct IPv6UdpAddress *) address->address;
+    GNUNET_assert (NULL != u6);
     const struct sockaddr_in6 *s6 = (const struct sockaddr_in6 *) s->sock_addr;
     if ((0 == memcmp (&u6->ipv6_addr, &s6->sin6_addr, sizeof (struct in6_addr))) &&
         (u6->u6_port == s6->sin6_port))