Page MenuHomeFreeBSD

D42985.id131213.diff
No OneTemporary

D42985.id131213.diff

diff --git a/sys/netinet/in_pcb.c b/sys/netinet/in_pcb.c
--- a/sys/netinet/in_pcb.c
+++ b/sys/netinet/in_pcb.c
@@ -2984,7 +2984,11 @@
so = inp->inp_socket;
KASSERT(so != NULL, ("inp_socket == NULL"));
soref(so);
- error = (*ctloutput_set)(inp, &sopt);
+ if (params->sop_level == SOL_SOCKET) {
+ INP_WUNLOCK(inp);
+ error = sosetopt(so, &sopt);
+ } else
+ error = (*ctloutput_set)(inp, &sopt);
sorele(so);
break;
}

File Metadata

Mime Type
text/plain
Expires
Fri, Jun 12, 9:29 AM (20 h, 46 m)
Storage Engine
blob
Storage Format
Raw Data
Storage Handle
33904039
Default Alt Text
D42985.id131213.diff (453 B)

Event Timeline