diff options
author | alc <alc@FreeBSD.org> | 2002-11-02 05:14:31 +0000 |
---|---|---|
committer | alc <alc@FreeBSD.org> | 2002-11-02 05:14:31 +0000 |
commit | 328836c626572cbb92db3e480fbfe6f839592623 (patch) | |
tree | 90a3e67be017671fcd88cf32a831b47035f5cf35 | |
parent | 3dfe105e7afc279f2190ceed8e7a4a97aa586a49 (diff) | |
download | FreeBSD-src-328836c626572cbb92db3e480fbfe6f839592623.zip FreeBSD-src-328836c626572cbb92db3e480fbfe6f839592623.tar.gz |
Revert the change in revision 1.77 of kern/uipc_socket2.c. It is causing
a panic because the socket's state isn't as expected by sofree().
Discussed with: dillon, fenner
-rw-r--r-- | sys/kern/uipc_sockbuf.c | 2 | ||||
-rw-r--r-- | sys/kern/uipc_socket.c | 2 | ||||
-rw-r--r-- | sys/kern/uipc_socket2.c | 2 | ||||
-rw-r--r-- | sys/sys/socketvar.h | 1 |
4 files changed, 4 insertions, 3 deletions
diff --git a/sys/kern/uipc_sockbuf.c b/sys/kern/uipc_sockbuf.c index 239c408..9872c22 100644 --- a/sys/kern/uipc_sockbuf.c +++ b/sys/kern/uipc_sockbuf.c @@ -205,7 +205,7 @@ sonewconn(head, connstatus) #endif if (soreserve(so, head->so_snd.sb_hiwat, head->so_rcv.sb_hiwat) || (*so->so_proto->pr_usrreqs->pru_attach)(so, 0, NULL)) { - sotryfree(so); + sodealloc(so); return ((struct socket *)0); } diff --git a/sys/kern/uipc_socket.c b/sys/kern/uipc_socket.c index 7a6c2b5..379b7e1 100644 --- a/sys/kern/uipc_socket.c +++ b/sys/kern/uipc_socket.c @@ -231,7 +231,7 @@ sobind(so, nam, td) return (error); } -static void +void sodealloc(struct socket *so) { diff --git a/sys/kern/uipc_socket2.c b/sys/kern/uipc_socket2.c index 239c408..9872c22 100644 --- a/sys/kern/uipc_socket2.c +++ b/sys/kern/uipc_socket2.c @@ -205,7 +205,7 @@ sonewconn(head, connstatus) #endif if (soreserve(so, head->so_snd.sb_hiwat, head->so_rcv.sb_hiwat) || (*so->so_proto->pr_usrreqs->pru_attach)(so, 0, NULL)) { - sotryfree(so); + sodealloc(so); return ((struct socket *)0); } diff --git a/sys/sys/socketvar.h b/sys/sys/socketvar.h index 4c94157..a7e3e7b 100644 --- a/sys/sys/socketvar.h +++ b/sys/sys/socketvar.h @@ -405,6 +405,7 @@ int soconnect2(struct socket *so1, struct socket *so2); int socow_setup(struct mbuf *m0, struct uio *uio); int socreate(int dom, struct socket **aso, int type, int proto, struct ucred *cred, struct thread *td); +void sodealloc(struct socket *so); int sodisconnect(struct socket *so); void sofree(struct socket *so); int sogetopt(struct socket *so, struct sockopt *sopt); |