|
@@ -232,6 +232,7 @@ int generic_permission(struct inode *inode, int mask,
|
|
|
/*
|
|
/*
|
|
|
* Searching includes executable on directories, else just read.
|
|
* Searching includes executable on directories, else just read.
|
|
|
*/
|
|
*/
|
|
|
|
|
+ mask &= MAY_READ | MAY_WRITE | MAY_EXEC;
|
|
|
if (mask == MAY_READ || (S_ISDIR(inode->i_mode) && !(mask & MAY_WRITE)))
|
|
if (mask == MAY_READ || (S_ISDIR(inode->i_mode) && !(mask & MAY_WRITE)))
|
|
|
if (capable(CAP_DAC_READ_SEARCH))
|
|
if (capable(CAP_DAC_READ_SEARCH))
|
|
|
return 0;
|
|
return 0;
|