X-Git-Url: http://www.chiark.greenend.org.uk/ucgi/~ian/git?p=secnet.git;a=blobdiff_plain;f=netlink.c;h=2c3d12d4302b00aea1a59d44dbdd3ca130a532fc;hp=55eef5c8da38ce6139dc60e9e3d6d746f5919050;hb=6e3fd952d7052293905334a3bb3911c775222ea6;hpb=f3d69e414de7d941865f59723e45207bd1f8fc93 diff --git a/netlink.c b/netlink.c index 55eef5c..2c3d12d 100644 --- a/netlink.c +++ b/netlink.c @@ -775,9 +775,12 @@ static void netlink_packet_local(struct netlink *st, } h=(struct icmphdr *)buf->start; - if ((ntohs(h->iph.frag)&(IPHDR_FRAG_OFF|IPHDR_FRAG_MORE))!=0) { - Message(M_WARNING,"%s: fragmented packet addressed to secnet; " - "ignoring it\n",st->name); + unsigned fraginfo = ntohs(h->iph.frag); + if ((fraginfo&(IPHDR_FRAG_OFF|IPHDR_FRAG_MORE))!=0) { + if (!(fraginfo & IPHDR_FRAG_OFF)) + /* report only for first fragment */ + Message(M_WARNING,"%s: fragmented packet addressed to secnet; " + "ignoring it\n",st->name); BUF_FREE(buf); return; }