X-Git-Url: http://www.chiark.greenend.org.uk/ucgi/~ianmdlvl/git?a=blobdiff_plain;f=netlink.c;h=7add6d7dc1638800a45aa180b9e758ac3938a1bd;hb=4a6ee8b677fd7addc97fc0d245f95ddde3b5f8e4;hp=75763cf520719fc1bfc2934da725344121c35aa0;hpb=b4ececfc649ba051ccffe1029637f7262a59d8a0;p=secnet.git diff --git a/netlink.c b/netlink.c index 75763cf..7add6d7 100644 --- a/netlink.c +++ b/netlink.c @@ -1,5 +1,24 @@ /* User-kernel network link */ +/* + * This file is part of secnet. + * See README for full list of copyright holders. + * + * secnet is free software; you can redistribute it and/or modify it + * under the terms of the GNU General Public License as published by + * the Free Software Foundation; either version 3 of the License, or + * (at your option) any later version. + * + * secnet is distributed in the hope that it will be useful, but + * WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * version 3 along with secnet; if not, see + * https://www.gnu.org/licenses/gpl.html. + */ + /* See RFCs 791, 792, 1123 and 1812 */ /* The netlink device is actually a router. Tunnels are unnumbered @@ -468,8 +487,8 @@ static bool_t netlink_check(struct netlink *st, struct buffer_if *buf, struct iphdr *iph=(struct iphdr *)buf->start; int32_t len; - if (iph->ihl < 5) BAD("ihl %u",iph->ihl); if (iph->version != 4) BAD("version %u",iph->version); + if (iph->ihl < 5) BAD("ihl %u",iph->ihl); if (buf->size < iph->ihl*4) BAD("size %"PRId32"<%u*4",buf->size,iph->ihl); if (ip_fast_csum((uint8_t *)iph, iph->ihl)!=0) BAD("csum"); len=ntohs(iph->tot_len);