diff options
author | David Gwynne <dlg@cvs.openbsd.org> | 2015-09-10 17:41:16 +0000 |
---|---|---|
committer | David Gwynne <dlg@cvs.openbsd.org> | 2015-09-10 17:41:16 +0000 |
commit | ebc7ce9e5c64c6d8611ada6e67026a561d0b15f0 (patch) | |
tree | 00af9163a24cdac0b3e918adc18f77b5f838383f /sys/net | |
parent | 89e6bea9d139879cc2766c3fce8c04e73f58277f (diff) |
dont leak an ifp reference if tun isnt ready to read.
found by jsg@
Diffstat (limited to 'sys/net')
-rw-r--r-- | sys/net/if_tun.c | 3 |
1 files changed, 2 insertions, 1 deletions
diff --git a/sys/net/if_tun.c b/sys/net/if_tun.c index ba8bb3a4c48..7d317ea12e2 100644 --- a/sys/net/if_tun.c +++ b/sys/net/if_tun.c @@ -1,4 +1,4 @@ -/* $OpenBSD: if_tun.c,v 1.154 2015/09/09 20:18:03 dlg Exp $ */ +/* $OpenBSD: if_tun.c,v 1.155 2015/09/10 17:41:15 dlg Exp $ */ /* $NetBSD: if_tun.c,v 1.24 1996/05/07 02:40:48 thorpej Exp $ */ /* @@ -734,6 +734,7 @@ tunread(dev_t dev, struct uio *uio, int ioflag) TUNDEBUG(("%s: read\n", ifp->if_xname)); if ((tp->tun_flags & TUN_READY) != TUN_READY) { TUNDEBUG(("%s: not ready %#x\n", ifp->if_xname, tp->tun_flags)); + if_put(ifp); return (EHOSTDOWN); } |