struct sockaddr * fromsockaddr = (struct sockaddr *) &fromsockaddr_struct;
struct sockaddr_in * fsa4 = (struct sockaddr_in *) &fromsockaddr_struct;
socklen_t fromsockaddrsize;
- int num;
+ ssize_t num;
struct ICMPHeader *header = NULL;
struct UDPHeader *udpheader = NULL;
struct TCPHeader *tcpheader = NULL;
num = recvfrom(recvsock, packet, MAXPACKET, 0,
fromsockaddr, &fromsockaddrsize);
+ if(num < 0) {
+ perror("recvfrom failed");
+ exit(EXIT_FAILURE);
+ }
switch ( af ) {
case AF_INET:
break;
#ifdef ENABLE_IPV6
case AF_INET6:
- if(num < sizeof(struct ICMPHeader))
+ if((size_t) num < sizeof(struct ICMPHeader))
return;
header = (struct ICMPHeader *) packet;
break;
#ifdef ENABLE_IPV6
case AF_INET6:
- if ( num < sizeof (struct ICMPHeader) +
+ if ((size_t) num < sizeof (struct ICMPHeader) +
sizeof (struct ip6_hdr) + sizeof (struct ICMPHeader) )
return;
header = (struct ICMPHeader *) ( packet +
break;
#ifdef ENABLE_IPV6
case AF_INET6:
- if ( num < sizeof (struct ICMPHeader) +
+ if ((size_t) num < sizeof (struct ICMPHeader) +
sizeof (struct ip6_hdr) + sizeof (struct UDPHeader) )
return;
udpheader = (struct UDPHeader *) ( packet +
break;
#ifdef ENABLE_IPV6
case AF_INET6:
- if ( num < sizeof (struct ICMPHeader) +
+ if ((size_t) num < sizeof (struct ICMPHeader) +
sizeof (struct ip6_hdr) + sizeof (struct TCPHeader) )
return;
tcpheader = (struct TCPHeader *) ( packet +
break;
#ifdef ENABLE_IPV6
case AF_INET6:
- if ( num < sizeof (struct ICMPHeader) +
+ if ((size_t) num < sizeof (struct ICMPHeader) +
sizeof (struct ip6_hdr) + sizeof (struct SCTPHeader) )
return;
sctpheader = (struct SCTPHeader *) ( packet +