projects
/
firefly-linux-kernel-4.4.55.git
/ blobdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
tree
raw
|
inline
| side by side
x86: unify include/asm/unwind_32/64.h
[firefly-linux-kernel-4.4.55.git]
/
fs
/
xattr.c
diff --git
a/fs/xattr.c
b/fs/xattr.c
index 38646132ab0e29ec4c8ab8a4d3c7bbb491eaeaeb..a44fd92caca31c72aba82e61ec6b321d7ebf5a7d 100644
(file)
--- a/
fs/xattr.c
+++ b/
fs/xattr.c
@@
-9,7
+9,6
@@
*/
#include <linux/fs.h>
#include <linux/slab.h>
*/
#include <linux/fs.h>
#include <linux/slab.h>
-#include <linux/smp_lock.h>
#include <linux/file.h>
#include <linux/xattr.h>
#include <linux/namei.h>
#include <linux/file.h>
#include <linux/xattr.h>
#include <linux/namei.h>
@@
-61,8
+60,7
@@
xattr_permission(struct inode *inode, const char *name, int mask)
if (!S_ISREG(inode->i_mode) && !S_ISDIR(inode->i_mode))
return -EPERM;
if (S_ISDIR(inode->i_mode) && (inode->i_mode & S_ISVTX) &&
if (!S_ISREG(inode->i_mode) && !S_ISDIR(inode->i_mode))
return -EPERM;
if (S_ISDIR(inode->i_mode) && (inode->i_mode & S_ISVTX) &&
- (mask & MAY_WRITE) && (current->fsuid != inode->i_uid) &&
- !capable(CAP_FOWNER))
+ (mask & MAY_WRITE) && !is_owner_or_cap(inode))
return -EPERM;
}
return -EPERM;
}
@@
-351,6
+349,7
@@
sys_fgetxattr(int fd, char __user *name, void __user *value, size_t size)
f = fget(fd);
if (!f)
return error;
f = fget(fd);
if (!f)
return error;
+ audit_inode(NULL, f->f_path.dentry->d_inode);
error = getxattr(f->f_path.dentry, name, value, size);
fput(f);
return error;
error = getxattr(f->f_path.dentry, name, value, size);
fput(f);
return error;
@@
-423,6
+422,7
@@
sys_flistxattr(int fd, char __user *list, size_t size)
f = fget(fd);
if (!f)
return error;
f = fget(fd);
if (!f)
return error;
+ audit_inode(NULL, f->f_path.dentry->d_inode);
error = listxattr(f->f_path.dentry, list, size);
fput(f);
return error;
error = listxattr(f->f_path.dentry, list, size);
fput(f);
return error;