--- scan.c.org 2010-05-11 10:36:49.000000000 +0200 +++ scan.c 2010-05-11 10:37:44.000000000 +0200 @@ -356,7 +356,7 @@ static void receiver(struct portinfo *pi, int childpid) { struct myiphdr ip; - char packet[IP_MAX_SIZE+linkhdr_size]; + unsigned char packet[IP_MAX_SIZE+linkhdr_size]; while(1) { @@ -456,7 +456,7 @@ continue; /* time to copy headers in a safe place */ p = packet+linkhdr_size+iphdrlen; - memcpy(&icmp, p, sizeof(subtcp)); + memcpy(&icmp, p, sizeof(p)); p += sizeof(icmp); memcpy(&subip, p, sizeof(ip)); p += sizeof(ip);