in6_pcb.c (359fdba7a70222b3422610f4f73bca1be55e0524) in6_pcb.c (56f21b9d74a516a6c2f67d09e1b6c588bfa54c6a)
1/* $FreeBSD$ */
2/* $KAME: in6_pcb.c,v 1.31 2001/05/21 05:45:10 jinmei Exp $ */
3
4/*
5 * Copyright (C) 1995, 1996, 1997, and 1998 WIDE Project.
6 * All rights reserved.
7 *
8 * Redistribution and use in source and binary forms, with or without

--- 173 unchanged lines hidden (view full) ---

182 return (EADDRNOTAVAIL);
183 }
184 }
185 if (lport) {
186 struct inpcb *t;
187
188 /* GROSS */
189 if (ntohs(lport) < IPV6PORT_RESERVED &&
1/* $FreeBSD$ */
2/* $KAME: in6_pcb.c,v 1.31 2001/05/21 05:45:10 jinmei Exp $ */
3
4/*
5 * Copyright (C) 1995, 1996, 1997, and 1998 WIDE Project.
6 * All rights reserved.
7 *
8 * Redistribution and use in source and binary forms, with or without

--- 173 unchanged lines hidden (view full) ---

182 return (EADDRNOTAVAIL);
183 }
184 }
185 if (lport) {
186 struct inpcb *t;
187
188 /* GROSS */
189 if (ntohs(lport) < IPV6PORT_RESERVED &&
190 suser_cred(cred, PRISON_ROOT))
190 suser_cred(cred, SUSER_ALLOWJAIL))
191 return (EACCES);
192 if (so->so_cred->cr_uid != 0 &&
193 !IN6_IS_ADDR_MULTICAST(&sin6->sin6_addr)) {
194 t = in6_pcblookup_local(pcbinfo,
195 &sin6->sin6_addr, lport,
196 INPLOOKUP_WILDCARD);
197 if (t && (t->inp_vflag & INP_TIMEWAIT)) {
198 if ((!IN6_IS_ADDR_UNSPECIFIED(&sin6->sin6_addr) ||

--- 754 unchanged lines hidden ---
191 return (EACCES);
192 if (so->so_cred->cr_uid != 0 &&
193 !IN6_IS_ADDR_MULTICAST(&sin6->sin6_addr)) {
194 t = in6_pcblookup_local(pcbinfo,
195 &sin6->sin6_addr, lport,
196 INPLOOKUP_WILDCARD);
197 if (t && (t->inp_vflag & INP_TIMEWAIT)) {
198 if ((!IN6_IS_ADDR_UNSPECIFIED(&sin6->sin6_addr) ||

--- 754 unchanged lines hidden ---