Rather than using the cred from curthread, take it from the thread

referenced in the sysctl req argument.

Reviewed by:	rwatson
MFC after:	2 weeks
This commit is contained in:
Bjoern A. Zeeb 2009-01-09 23:57:59 +00:00
parent ff7bdcae4c
commit c2ded8aefb
Notes: svn2git 2020-12-20 02:59:44 +00:00
svn path=/head/; revision=186986

View file

@ -1326,8 +1326,8 @@ sysctl_iflist(int af, struct walkarg *w)
while ((ifa = TAILQ_NEXT(ifa, ifa_link)) != NULL) { while ((ifa = TAILQ_NEXT(ifa, ifa_link)) != NULL) {
if (af && af != ifa->ifa_addr->sa_family) if (af && af != ifa->ifa_addr->sa_family)
continue; continue;
if (jailed(curthread->td_ucred) && if (jailed(w->w_req->td->td_ucred) &&
!prison_if(curthread->td_ucred, ifa->ifa_addr)) !prison_if(w->w_req->td->td_ucred, ifa->ifa_addr))
continue; continue;
info.rti_info[RTAX_IFA] = ifa->ifa_addr; info.rti_info[RTAX_IFA] = ifa->ifa_addr;
info.rti_info[RTAX_NETMASK] = ifa->ifa_netmask; info.rti_info[RTAX_NETMASK] = ifa->ifa_netmask;
@ -1375,8 +1375,8 @@ sysctl_ifmalist(int af, struct walkarg *w)
TAILQ_FOREACH(ifma, &ifp->if_multiaddrs, ifma_link) { TAILQ_FOREACH(ifma, &ifp->if_multiaddrs, ifma_link) {
if (af && af != ifma->ifma_addr->sa_family) if (af && af != ifma->ifma_addr->sa_family)
continue; continue;
if (jailed(curthread->td_ucred) && if (jailed(w->w_req->td->td_ucred) &&
!prison_if(curthread->td_ucred, ifma->ifma_addr)) !prison_if(w->w_req->td->td_ucred, ifma->ifma_addr))
continue; continue;
info.rti_info[RTAX_IFA] = ifma->ifma_addr; info.rti_info[RTAX_IFA] = ifma->ifma_addr;
info.rti_info[RTAX_GATEWAY] = info.rti_info[RTAX_GATEWAY] =
@ -1457,7 +1457,7 @@ sysctl_rtsock(SYSCTL_HANDLER_ARGS)
* take care of routing entries * take care of routing entries
*/ */
for (error = 0; error == 0 && i <= lim; i++) for (error = 0; error == 0 && i <= lim; i++)
if ((rnh = V_rt_tables[curthread->td_proc->p_fibnum][i]) != NULL) { if ((rnh = V_rt_tables[req->td->td_proc->p_fibnum][i]) != NULL) {
RADIX_NODE_HEAD_LOCK(rnh); RADIX_NODE_HEAD_LOCK(rnh);
error = rnh->rnh_walktree(rnh, error = rnh->rnh_walktree(rnh,
sysctl_dumpentry, &w); sysctl_dumpentry, &w);