patch-2.1.100 linux/fs/proc/inode.c
Next file: linux/fs/smbfs/proc.c
Previous file: linux/fs/proc/array.c
Back to the patch index
Back to the overall index
-  Lines: 15
-  Date:
Wed May  6 10:56:08 1998
-  Orig file: 
v2.1.99/linux/fs/proc/inode.c
-  Orig date: 
Thu Apr 23 20:21:37 1998
diff -u --recursive --new-file v2.1.99/linux/fs/proc/inode.c linux/fs/proc/inode.c
@@ -145,8 +145,13 @@
 		mode >>= 6;
 	else if (in_group_p(inode->i_gid))
 		mode >>= 3;
-	if (((mode & mask & 0007) == mask) || fsuser())
+	if (((mode & mask & S_IRWXO) == mask) || capable(CAP_DAC_OVERRIDE))
 		return 0;
+	/* read and search access */
+	if ((mask == S_IROTH) ||
+	    (S_ISDIR(mode)  && !(mask & ~(S_IROTH | S_IXOTH))))
+		if (capable(CAP_DAC_READ_SEARCH))
+			return 0;
 	return -EACCES;
 }
 
FUNET's LINUX-ADM group, linux-adm@nic.funet.fi
TCL-scripts by Sam Shen, slshen@lbl.gov