diff options
author | asmodai <asmodai@FreeBSD.org> | 2000-06-13 15:44:04 +0000 |
---|---|---|
committer | asmodai <asmodai@FreeBSD.org> | 2000-06-13 15:44:04 +0000 |
commit | 7eea693fdb9b4eea9df8caa261ec2e8c58775fa0 (patch) | |
tree | de635010d7af0579b1aae3fca5fb18ed126384a3 /sys/kern/uipc_socket.c | |
parent | b55d0c006f58371d7e3fba4d95814310a293cd6e (diff) | |
download | FreeBSD-src-7eea693fdb9b4eea9df8caa261ec2e8c58775fa0.zip FreeBSD-src-7eea693fdb9b4eea9df8caa261ec2e8c58775fa0.tar.gz |
Fix panic by moving the prp == 0 check up the order of sanity checks.
Submitted by: Bart Thate <freebsd@1st.dudi.org> on -current
Approved by: rwatson
Diffstat (limited to 'sys/kern/uipc_socket.c')
-rw-r--r-- | sys/kern/uipc_socket.c | 5 |
1 files changed, 3 insertions, 2 deletions
diff --git a/sys/kern/uipc_socket.c b/sys/kern/uipc_socket.c index 7313811..b172d46 100644 --- a/sys/kern/uipc_socket.c +++ b/sys/kern/uipc_socket.c @@ -135,6 +135,9 @@ socreate(dom, aso, type, proto, p) else prp = pffindtype(dom, type); + if (prp == 0 || prp->pr_usrreqs->pru_attach == 0) + return (EPROTONOSUPPORT); + if (p->p_prison && jail_socket_unixiproute_only && prp->pr_domain->dom_family != PF_LOCAL && prp->pr_domain->dom_family != PF_INET && @@ -142,8 +145,6 @@ socreate(dom, aso, type, proto, p) return (EPROTONOSUPPORT); } - if (prp == 0 || prp->pr_usrreqs->pru_attach == 0) - return (EPROTONOSUPPORT); if (prp->pr_type != type) return (EPROTOTYPE); so = soalloc(p != 0); |