[BACK]Return to procfs_vnops.c CVS log [TXT][DIR] Up to [cvs.NetBSD.org] / src / sys / miscfs / procfs

Please note that diffs are not public domain; they are subject to the copyright notices on the relevant files.

Diff for /src/sys/miscfs/procfs/procfs_vnops.c between version 1.218 and 1.219

version 1.218, 2021/07/18 23:57:14 version 1.219, 2021/10/05 18:00:28
Line 1221  procfs_root_readdir_callback(struct proc
Line 1221  procfs_root_readdir_callback(struct proc
         if (uiop->uio_resid < UIO_MX)          if (uiop->uio_resid < UIO_MX)
                 return -1; /* no space */                  return -1; /* no space */
   
         if (ctxp->off < ctxp->startoff) {  
                 ctxp->off++;  
                 return 0;  
         }  
   
         if (kauth_authorize_process(kauth_cred_get(),          if (kauth_authorize_process(kauth_cred_get(),
             KAUTH_PROCESS_CANSEE, p,              KAUTH_PROCESS_CANSEE, p,
             KAUTH_ARG(KAUTH_REQ_PROCESS_CANSEE_ENTRY), NULL, NULL) != 0)              KAUTH_ARG(KAUTH_REQ_PROCESS_CANSEE_ENTRY), NULL, NULL) != 0)
                 return 0;                  return 0;
   
           if (ctxp->off < ctxp->startoff) {
                   ctxp->off++;
                   return 0;
           }
   
         memset(&d, 0, UIO_MX);          memset(&d, 0, UIO_MX);
         d.d_reclen = UIO_MX;          d.d_reclen = UIO_MX;
         d.d_fileno = PROCFS_FILENO(p->p_pid, PFSproc, -1);          d.d_fileno = PROCFS_FILENO(p->p_pid, PFSproc, -1);
Line 1483  procfs_readdir(void *v)
Line 1483  procfs_readdir(void *v)
          */           */
   
         case PFSroot: {          case PFSroot: {
                   struct proc *p;
                 int nc = 0;                  int nc = 0;
   
                 if (ap->a_ncookies) {                  if (ap->a_ncookies) {
Line 1548  procfs_readdir(void *v)
Line 1549  procfs_readdir(void *v)
                         i = ctx.off;                          i = ctx.off;
                 if (i >= ctx.off + nproc_root_targets)                  if (i >= ctx.off + nproc_root_targets)
                         break;                          break;
                   error = procfs_proc_lock(vp->v_mount, pfs->pfs_pid, &p, ESRCH);
                   if (error)
                           break;
                 for (pt = &proc_root_targets[i - ctx.off];                  for (pt = &proc_root_targets[i - ctx.off];
                     uio->uio_resid >= UIO_MX &&                      uio->uio_resid >= UIO_MX &&
                     pt < &proc_root_targets[nproc_root_targets];                      pt < &proc_root_targets[nproc_root_targets];
Line 1555  procfs_readdir(void *v)
Line 1559  procfs_readdir(void *v)
                         if (pt->pt_valid &&                          if (pt->pt_valid &&
                             (*pt->pt_valid)(NULL, vp->v_mount) == 0)                              (*pt->pt_valid)(NULL, vp->v_mount) == 0)
                                 continue;                                  continue;
                           if (kauth_authorize_process(kauth_cred_get(),
                               KAUTH_PROCESS_CANSEE, p,
                               KAUTH_ARG(KAUTH_REQ_PROCESS_CANSEE_ENTRY),
                               NULL, NULL) != 0)
                                   continue;
                         d.d_fileno = PROCFS_FILENO(0, pt->pt_pfstype, -1);                          d.d_fileno = PROCFS_FILENO(0, pt->pt_pfstype, -1);
                         d.d_namlen = pt->pt_namlen;                          d.d_namlen = pt->pt_namlen;
                         memcpy(d.d_name, pt->pt_name, pt->pt_namlen + 1);                          memcpy(d.d_name, pt->pt_name, pt->pt_namlen + 1);
Line 1568  procfs_readdir(void *v)
Line 1577  procfs_readdir(void *v)
                 }                  }
   
                 ncookies = nc;                  ncookies = nc;
                   procfs_proc_unlock(p);
                 break;                  break;
         }          }
   

Legend:
Removed from v.1.218  
changed lines
  Added in v.1.219

CVSweb <webmaster@jp.NetBSD.org>