| version 1.87, 2005/04/29 10:39:09 |
version 1.87.2.1, 2006/06/21 15:11:01 |
| Line 77 __KERNEL_RCSID(0, "$NetBSD$"); |
|
| Line 77 __KERNEL_RCSID(0, "$NetBSD$"); |
|
| #include <sys/errno.h> |
#include <sys/errno.h> |
| #include <sys/systm.h> |
#include <sys/systm.h> |
| #include <sys/proc.h> |
#include <sys/proc.h> |
| |
#include <sys/kauth.h> |
| |
|
| #include <net/if.h> |
#include <net/if.h> |
| #include <net/route.h> |
#include <net/route.h> |
| Line 502 u_long rip_recvspace = RIPRCVQ; |
|
| Line 503 u_long rip_recvspace = RIPRCVQ; |
|
| /*ARGSUSED*/ |
/*ARGSUSED*/ |
| int |
int |
| rip_usrreq(struct socket *so, int req, |
rip_usrreq(struct socket *so, int req, |
| struct mbuf *m, struct mbuf *nam, struct mbuf *control, struct proc *p) |
struct mbuf *m, struct mbuf *nam, struct mbuf *control, struct lwp *l) |
| { |
{ |
| struct inpcb *inp; |
struct inpcb *inp; |
| |
struct proc *p; |
| int s; |
int s; |
| int error = 0; |
int error = 0; |
| #ifdef MROUTING |
#ifdef MROUTING |
| extern struct socket *ip_mrouter; |
extern struct socket *ip_mrouter; |
| #endif |
#endif |
| |
|
| |
p = l ? l->l_proc : NULL; |
| if (req == PRU_CONTROL) |
if (req == PRU_CONTROL) |
| return (in_control(so, (long)m, (caddr_t)nam, |
return (in_control(so, (long)m, (caddr_t)nam, |
| (struct ifnet *)control, p)); |
(struct ifnet *)control, p)); |
| Line 540 rip_usrreq(struct socket *so, int req, |
|
| Line 543 rip_usrreq(struct socket *so, int req, |
|
| error = EISCONN; |
error = EISCONN; |
| break; |
break; |
| } |
} |
| if (p == 0 || (error = suser(p->p_ucred, &p->p_acflag))) { |
if (p == 0 || (error = kauth_authorize_generic(p->p_cred, |
| |
KAUTH_GENERIC_ISSUSER, &p->p_acflag))) { |
| error = EACCES; |
error = EACCES; |
| break; |
break; |
| } |
} |