uint16_t port;
uint32_t options;
- if (addrlen == sizeof (struct IPv6UdpAddress))
+ if ((NULL != addr) && (addrlen == sizeof (struct IPv6UdpAddress)))
{
t6 = addr;
af = AF_INET6;
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;
struct sockaddr_in6 *v6;
size_t len;
+ if (NULL == addr)
+ {
+ GNUNET_break (0);
+ return NULL;
+ }
+
switch (addrlen)
{
case sizeof (struct IPv4UdpAddress):
{
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))
{
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))