Page MenuHomeFreeBSD

D40268.diff
No OneTemporary

D40268.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
@@ -2254,8 +2254,10 @@
continue;
if (__predict_true(inp_smr_lock(inp, lockflags))) {
- if (__predict_true(in_pcblookup_wild_match(inp, laddr,
- lport) != INPLOOKUP_MATCH_NONE))
+ match = in_pcblookup_wild_match(inp, laddr, lport);
+ if (match != INPLOOKUP_MATCH_NONE &&
+ prison_check_ip4_locked(inp->inp_cred->cr_prison,
+ &laddr) == 0)
return (inp);
inp_unlock(inp, lockflags);
}
diff --git a/sys/netinet6/in6_pcb.c b/sys/netinet6/in6_pcb.c
--- a/sys/netinet6/in6_pcb.c
+++ b/sys/netinet6/in6_pcb.c
@@ -1021,8 +1021,10 @@
continue;
if (__predict_true(inp_smr_lock(inp, lockflags))) {
- if (__predict_true(in6_pcblookup_wild_match(inp, laddr,
- lport) != INPLOOKUP_MATCH_NONE))
+ match = in6_pcblookup_wild_match(inp, laddr, lport);
+ if (match != INPLOOKUP_MATCH_NONE &&
+ prison_check_ip6_locked(inp->inp_cred->cr_prison,
+ laddr) == 0)
return (inp);
inp_unlock(inp, lockflags);
}

File Metadata

Mime Type
text/plain
Expires
Thu, Apr 24, 9:59 PM (17 h, 32 m)
Storage Engine
blob
Storage Format
Raw Data
Storage Handle
17767792
Default Alt Text
D40268.diff (1 KB)

Event Timeline