diff options
Diffstat (limited to 'security/smack/smack_lsm.c')
| -rw-r--r-- | security/smack/smack_lsm.c | 16 |
1 files changed, 4 insertions, 12 deletions
diff --git a/security/smack/smack_lsm.c b/security/smack/smack_lsm.c index 0f2fc480fc6..9192ba366a4 100644 --- a/security/smack/smack_lsm.c +++ b/security/smack/smack_lsm.c | |||
| @@ -598,6 +598,8 @@ static int smack_inode_rename(struct inode *old_inode, | |||
| 598 | static int smack_inode_permission(struct inode *inode, int mask) | 598 | static int smack_inode_permission(struct inode *inode, int mask) |
| 599 | { | 599 | { |
| 600 | struct smk_audit_info ad; | 600 | struct smk_audit_info ad; |
| 601 | |||
| 602 | mask &= (MAY_READ|MAY_WRITE|MAY_EXEC|MAY_APPEND); | ||
| 601 | /* | 603 | /* |
| 602 | * No permission to check. Existence test. Yup, it's there. | 604 | * No permission to check. Existence test. Yup, it's there. |
| 603 | */ | 605 | */ |
| @@ -2191,7 +2193,7 @@ static void smack_ipc_getsecid(struct kern_ipc_perm *ipp, u32 *secid) | |||
| 2191 | 2193 | ||
| 2192 | /** | 2194 | /** |
| 2193 | * smack_d_instantiate - Make sure the blob is correct on an inode | 2195 | * smack_d_instantiate - Make sure the blob is correct on an inode |
| 2194 | * @opt_dentry: unused | 2196 | * @opt_dentry: dentry where inode will be attached |
| 2195 | * @inode: the object | 2197 | * @inode: the object |
| 2196 | * | 2198 | * |
| 2197 | * Set the inode's security blob if it hasn't been done already. | 2199 | * Set the inode's security blob if it hasn't been done already. |
| @@ -2310,20 +2312,10 @@ static void smack_d_instantiate(struct dentry *opt_dentry, struct inode *inode) | |||
| 2310 | /* | 2312 | /* |
| 2311 | * Get the dentry for xattr. | 2313 | * Get the dentry for xattr. |
| 2312 | */ | 2314 | */ |
| 2313 | if (opt_dentry == NULL) { | 2315 | dp = dget(opt_dentry); |
| 2314 | dp = d_find_alias(inode); | ||
| 2315 | if (dp == NULL) | ||
| 2316 | break; | ||
| 2317 | } else { | ||
| 2318 | dp = dget(opt_dentry); | ||
| 2319 | if (dp == NULL) | ||
| 2320 | break; | ||
| 2321 | } | ||
| 2322 | |||
| 2323 | fetched = smk_fetch(inode, dp); | 2316 | fetched = smk_fetch(inode, dp); |
| 2324 | if (fetched != NULL) | 2317 | if (fetched != NULL) |
| 2325 | final = fetched; | 2318 | final = fetched; |
| 2326 | |||
| 2327 | dput(dp); | 2319 | dput(dp); |
| 2328 | break; | 2320 | break; |
| 2329 | } | 2321 | } |
