diff options
author | 2008-05-06 07:18:09 +0000 | |
---|---|---|
committer | 2008-05-06 07:18:09 +0000 | |
commit | 14eacac8667239e358344b6648e20fad9d9c0ecd (patch) | |
tree | ffbe1bd42c6f5b1cc6dc2608caf446920b72efd3 | |
parent | when pax is running in -u mode, and no files are beeing updated because (diff) | |
download | wireguard-openbsd-14eacac8667239e358344b6648e20fad9d9c0ecd.tar.xz wireguard-openbsd-14eacac8667239e358344b6648e20fad9d9c0ecd.zip |
M_PREPEND can set its first parameter to NULL, and all other code
using M_PREPEND checks for NULL after the invocation. So check
here too and return ENOBUFS if NULL is detected.
ok henning@
-rw-r--r-- | sys/net/if_tun.c | 4 |
1 files changed, 3 insertions, 1 deletions
diff --git a/sys/net/if_tun.c b/sys/net/if_tun.c index 98872dbc3ca..390a1b16ae3 100644 --- a/sys/net/if_tun.c +++ b/sys/net/if_tun.c @@ -1,4 +1,4 @@ -/* $OpenBSD: if_tun.c,v 1.91 2007/12/20 02:53:02 brad Exp $ */ +/* $OpenBSD: if_tun.c,v 1.92 2008/05/06 07:18:09 krw Exp $ */ /* $NetBSD: if_tun.c,v 1.24 1996/05/07 02:40:48 thorpej Exp $ */ /* @@ -551,6 +551,8 @@ tun_output(struct ifnet *ifp, struct mbuf *m0, struct sockaddr *dst, return (ether_output(ifp, m0, dst, rt)); M_PREPEND(m0, sizeof(*af), M_DONTWAIT); + if (m0 == NULL) + return (ENOBUFS); af = mtod(m0, u_int32_t *); *af = htonl(dst->sa_family); |