On Fri, Sep 29, 2023 at 01:46:40AM +0200, Tobias Heider wrote: > Like with route messages we should really only forward pfkey messages > that made it past the validation step. This fixes a lot of possible > crashes in ipsecctl -m. > > ok?
OK bluhm@ > diff /home/user/got/co/src > commit - 1ce2bc211dba4164679169b9248650fd1d6ba9d2 > path + /home/user/got/co/src > blob - e750ae8bdbe6819473884a8c37a518171c63ad60 > file + sys/net/pfkeyv2.c > --- sys/net/pfkeyv2.c > +++ sys/net/pfkeyv2.c > @@ -1162,6 +1162,10 @@ pfkeyv2_dosend(struct socket *so, void *message, int l > > rdomain = kp->kcb_rdomain; > > + /* Validate message format */ > + if ((rval = pfkeyv2_parsemessage(message, len, headers)) != 0) > + goto ret; > + > /* If we have any promiscuous listeners, send them a copy of the > message */ > if (promisc) { > struct mbuf *packet; > @@ -1208,10 +1212,6 @@ pfkeyv2_dosend(struct socket *so, void *message, int l > freeme_sz = 0; > } > > - /* Validate message format */ > - if ((rval = pfkeyv2_parsemessage(message, len, headers)) != 0) > - goto ret; > - > /* use specified rdomain */ > srdomain = (struct sadb_x_rdomain *) headers[SADB_X_EXT_RDOMAIN]; > if (srdomain) {