patch-2.2.3 linux/fs/proc/array.c
Next file: linux/fs/smbfs/cache.c
Previous file: linux/fs/nfs/write.c
Back to the patch index
Back to the overall index
- Lines: 31
- Date:
Mon Mar 8 11:07:29 1999
- Orig file:
v2.2.2/linux/fs/proc/array.c
- Orig date:
Thu Jan 28 12:58:02 1999
diff -u --recursive --new-file v2.2.2/linux/fs/proc/array.c linux/fs/proc/array.c
@@ -1343,6 +1343,7 @@
{
struct task_struct *p;
uid_t euid=0; /* Save the euid keep the lock short */
+ int ok = 0;
read_lock(&tasklist_lock);
@@ -1352,9 +1353,11 @@
*/
p = find_task_by_pid(pid);
- if(p)
- {
+ if (p) {
euid=p->euid;
+ ok = p->dumpable;
+ if(!cap_issubset(p->cap_permitted, current->cap_permitted))
+ ok=0;
if(!p->mm) /* Scooby scooby doo where are you ? */
p=NULL;
}
@@ -1374,7 +1377,7 @@
case PROC_PID_CPU:
return 0;
}
- if(capable(CAP_DAC_OVERRIDE) || current->fsuid == euid)
+ if(capable(CAP_DAC_OVERRIDE) || (current->fsuid == euid && ok))
return 0;
return 1;
}
FUNET's LINUX-ADM group, linux-adm@nic.funet.fi
TCL-scripts by Sam Shen (who was at: slshen@lbl.gov)