X-Git-Url: https://git.distorted.org.uk/~mdw/secnet/blobdiff_plain/b7886fd46ab05c97b8a072e497903622bd1d5290..1fc8a4acb3ef658696038c9c4bd3c155fbc27ac3:/netlink.c diff --git a/netlink.c b/netlink.c index e180b1d..83b470e 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 d 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); @@ -1039,8 +1058,7 @@ static void netlink_phase_hook(void *sst, uint32_t new_phase) /* All the networks serviced by the various tunnels should now * have been registered. We build a routing table by sorting the * clients by priority. */ - st->routes=safe_malloc_ary(sizeof(*st->routes),st->n_clients, - "netlink_phase_hook"); + NEW_ARY(st->routes,st->n_clients); /* Fill the table */ i=0; for (c=st->clients; c; c=c->next) {