mirror of
https://github.com/freebsd/freebsd-src
synced 2024-10-19 23:03:55 +00:00
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:
parent
ff7bdcae4c
commit
c2ded8aefb
Notes:
svn2git
2020-12-20 02:59:44 +00:00
svn path=/head/; revision=186986
|
@ -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);
|
||||||
|
|
Loading…
Reference in a new issue