mirror of
https://gitlab.com/apparmor/apparmor.git
synced 2025-03-04 08:24:42 +01:00
Add other fixes from Steve.
This commit is contained in:
parent
3982066011
commit
6de6de7bc3
32 changed files with 106 additions and 58 deletions
|
@ -12,10 +12,10 @@ Patch is not in mainline -- pending AppArmor code submission to lkml
|
|||
kernel/audit.c | 6 ++++--
|
||||
2 files changed, 9 insertions(+), 2 deletions(-)
|
||||
|
||||
Index: linux-2.6/include/linux/audit.h
|
||||
Index: b/include/linux/audit.h
|
||||
===================================================================
|
||||
--- linux-2.6.orig/include/linux/audit.h
|
||||
+++ linux-2.6/include/linux/audit.h
|
||||
--- a/include/linux/audit.h
|
||||
+++ b/include/linux/audit.h
|
||||
@@ -110,6 +110,8 @@
|
||||
#define AUDIT_LAST_KERN_ANOM_MSG 1799
|
||||
#define AUDIT_ANOM_PROMISCUOUS 1700 /* Device changed promiscuous mode */
|
||||
|
@ -35,10 +35,10 @@ Index: linux-2.6/include/linux/audit.h
|
|||
extern void audit_log_format(struct audit_buffer *ab,
|
||||
const char *fmt, ...)
|
||||
__attribute__((format(printf,2,3)));
|
||||
Index: linux-2.6/kernel/audit.c
|
||||
Index: b/kernel/audit.c
|
||||
===================================================================
|
||||
--- linux-2.6.orig/kernel/audit.c
|
||||
+++ linux-2.6/kernel/audit.c
|
||||
--- a/kernel/audit.c
|
||||
+++ b/kernel/audit.c
|
||||
@@ -956,8 +956,7 @@ static inline int audit_expand(struct au
|
||||
* will be called a second time. Currently, we assume that a printk
|
||||
* can't format message larger than 1024 bytes, so we don't either.
|
||||
|
|
|
@ -81,7 +81,7 @@ Index: b/fs/proc/base.c
|
|||
===================================================================
|
||||
--- a/fs/proc/base.c
|
||||
+++ b/fs/proc/base.c
|
||||
@@ -356,13 +356,16 @@ static const struct inode_operations pro
|
||||
@@ -353,13 +353,16 @@ static const struct inode_operations pro
|
||||
.setattr = proc_setattr,
|
||||
};
|
||||
|
||||
|
@ -99,7 +99,7 @@ Index: b/fs/proc/base.c
|
|||
{
|
||||
struct task_struct *task = get_proc_task(inode);
|
||||
struct mnt_namespace *ns = NULL;
|
||||
@@ -385,12 +388,16 @@ static int mounts_open(struct inode *ino
|
||||
@@ -382,12 +385,16 @@ static int mounts_open(struct inode *ino
|
||||
p = kmalloc(sizeof(struct proc_mounts), GFP_KERNEL);
|
||||
if (p) {
|
||||
file->private_data = &p->m;
|
||||
|
@ -117,7 +117,7 @@ Index: b/fs/proc/base.c
|
|||
kfree(p);
|
||||
}
|
||||
put_mnt_ns(ns);
|
||||
@@ -398,17 +405,25 @@ static int mounts_open(struct inode *ino
|
||||
@@ -395,17 +402,25 @@ static int mounts_open(struct inode *ino
|
||||
return ret;
|
||||
}
|
||||
|
||||
|
@ -146,7 +146,7 @@ Index: b/fs/proc/base.c
|
|||
struct mnt_namespace *ns = p->m.private;
|
||||
unsigned res = 0;
|
||||
|
||||
@@ -435,31 +450,7 @@ static const struct file_operations proc
|
||||
@@ -432,31 +447,7 @@ static const struct file_operations proc
|
||||
extern struct seq_operations mountstats_op;
|
||||
static int mountstats_open(struct inode *inode, struct file *file)
|
||||
{
|
||||
|
|
29
kernel-patches/for-mainline/proc_sys_setattr.diff
Normal file
29
kernel-patches/for-mainline/proc_sys_setattr.diff
Normal file
|
@ -0,0 +1,29 @@
|
|||
Remove redundant check from proc_sys_setattr(), similar to recent fixup
|
||||
in proc_setattr().
|
||||
|
||||
notify_change() already calls security_inode_setattr() before
|
||||
calling iop->setattr.
|
||||
|
||||
Signed-off-by: Steve Beattie <sbeattie@suse.de>
|
||||
---
|
||||
fs/proc/proc_sysctl.c | 7 ++-----
|
||||
1 file changed, 2 insertions(+), 5 deletions(-)
|
||||
|
||||
Index: b/fs/proc/proc_sysctl.c
|
||||
===================================================================
|
||||
--- a/fs/proc/proc_sysctl.c
|
||||
+++ b/fs/proc/proc_sysctl.c
|
||||
@@ -429,11 +429,8 @@ static int proc_sys_setattr(struct dentr
|
||||
return -EPERM;
|
||||
|
||||
error = inode_change_ok(inode, attr);
|
||||
- if (!error) {
|
||||
- error = security_inode_setattr(dentry, attr);
|
||||
- if (!error)
|
||||
- error = inode_setattr(inode, attr);
|
||||
- }
|
||||
+ if (!error)
|
||||
+ error = inode_setattr(inode, attr);
|
||||
|
||||
return error;
|
||||
}
|
|
@ -11,7 +11,7 @@ Index: b/mm/filemap.c
|
|||
===================================================================
|
||||
--- a/mm/filemap.c
|
||||
+++ b/mm/filemap.c
|
||||
@@ -1869,9 +1869,9 @@ repeat:
|
||||
@@ -1849,9 +1849,9 @@ repeat:
|
||||
* if suid or (sgid and xgrp)
|
||||
* remove privs
|
||||
*/
|
||||
|
@ -23,7 +23,7 @@ Index: b/mm/filemap.c
|
|||
int kill = 0;
|
||||
|
||||
/* suid always must be killed */
|
||||
@@ -1892,20 +1892,20 @@ int should_remove_suid(struct dentry *de
|
||||
@@ -1872,20 +1872,20 @@ int should_remove_suid(struct dentry *de
|
||||
}
|
||||
EXPORT_SYMBOL(should_remove_suid);
|
||||
|
||||
|
@ -49,7 +49,7 @@ Index: b/mm/filemap.c
|
|||
|
||||
return 0;
|
||||
}
|
||||
@@ -2266,7 +2266,7 @@ __generic_file_aio_write_nolock(struct k
|
||||
@@ -2246,7 +2246,7 @@ __generic_file_aio_write_nolock(struct k
|
||||
if (count == 0)
|
||||
goto out;
|
||||
|
||||
|
@ -114,7 +114,7 @@ Index: b/fs/xfs/linux-2.6/xfs_lrw.c
|
|||
===================================================================
|
||||
--- a/fs/xfs/linux-2.6/xfs_lrw.c
|
||||
+++ b/fs/xfs/linux-2.6/xfs_lrw.c
|
||||
@@ -805,7 +805,7 @@ start:
|
||||
@@ -799,7 +799,7 @@ start:
|
||||
!capable(CAP_FSETID)) {
|
||||
error = xfs_write_clear_setuid(xip);
|
||||
if (likely(!error))
|
||||
|
@ -127,7 +127,7 @@ Index: b/include/linux/fs.h
|
|||
===================================================================
|
||||
--- a/include/linux/fs.h
|
||||
+++ b/include/linux/fs.h
|
||||
@@ -1678,9 +1678,9 @@ extern void __iget(struct inode * inode)
|
||||
@@ -1685,9 +1685,9 @@ extern void __iget(struct inode * inode)
|
||||
extern void clear_inode(struct inode *);
|
||||
extern void destroy_inode(struct inode *);
|
||||
extern struct inode *new_inode(struct super_block *);
|
||||
|
@ -137,9 +137,9 @@ Index: b/include/linux/fs.h
|
|||
+extern int __remove_suid(struct path *, int);
|
||||
+extern int should_remove_suid(struct path *);
|
||||
+extern int remove_suid(struct path *);
|
||||
extern void remove_dquot_ref(struct super_block *, int, struct list_head *);
|
||||
|
||||
extern void __insert_inode_hash(struct inode *, unsigned long hashval);
|
||||
extern void remove_inode_hash(struct inode *);
|
||||
Index: b/mm/filemap_xip.c
|
||||
===================================================================
|
||||
--- a/mm/filemap_xip.c
|
||||
|
|
|
@ -78,7 +78,7 @@ Index: b/security/selinux/hooks.c
|
|||
===================================================================
|
||||
--- a/security/selinux/hooks.c
|
||||
+++ b/security/selinux/hooks.c
|
||||
@@ -2135,7 +2135,8 @@ static int selinux_inode_init_security(s
|
||||
@@ -2178,7 +2178,8 @@ static int selinux_inode_init_security(s
|
||||
return 0;
|
||||
}
|
||||
|
||||
|
|
|
@ -82,7 +82,7 @@ Index: b/security/selinux/hooks.c
|
|||
===================================================================
|
||||
--- a/security/selinux/hooks.c
|
||||
+++ b/security/selinux/hooks.c
|
||||
@@ -2352,7 +2352,8 @@ static void selinux_inode_post_setxattr(
|
||||
@@ -2395,7 +2395,8 @@ static void selinux_inode_post_setxattr(
|
||||
return;
|
||||
}
|
||||
|
||||
|
|
|
@ -95,7 +95,7 @@ Index: b/security/selinux/hooks.c
|
|||
===================================================================
|
||||
--- a/security/selinux/hooks.c
|
||||
+++ b/security/selinux/hooks.c
|
||||
@@ -2141,11 +2141,16 @@ static int selinux_inode_create(struct i
|
||||
@@ -2184,11 +2184,16 @@ static int selinux_inode_create(struct i
|
||||
return may_create(dir, dentry, SECCLASS_FILE);
|
||||
}
|
||||
|
||||
|
|
|
@ -80,7 +80,7 @@ Index: b/security/selinux/hooks.c
|
|||
===================================================================
|
||||
--- a/security/selinux/hooks.c
|
||||
+++ b/security/selinux/hooks.c
|
||||
@@ -2358,7 +2358,7 @@ static int selinux_inode_getxattr (struc
|
||||
@@ -2401,7 +2401,7 @@ static int selinux_inode_getxattr (struc
|
||||
return dentry_has_perm(current, NULL, dentry, FILE__GETATTR);
|
||||
}
|
||||
|
||||
|
|
|
@ -77,7 +77,7 @@ Index: b/security/selinux/hooks.c
|
|||
===================================================================
|
||||
--- a/security/selinux/hooks.c
|
||||
+++ b/security/selinux/hooks.c
|
||||
@@ -2166,7 +2166,8 @@ static int selinux_inode_symlink(struct
|
||||
@@ -2209,7 +2209,8 @@ static int selinux_inode_symlink(struct
|
||||
return may_create(dir, dentry, SECCLASS_LNK_FILE);
|
||||
}
|
||||
|
||||
|
|
|
@ -76,7 +76,7 @@ Index: b/security/selinux/hooks.c
|
|||
===================================================================
|
||||
--- a/security/selinux/hooks.c
|
||||
+++ b/security/selinux/hooks.c
|
||||
@@ -2177,11 +2177,12 @@ static int selinux_inode_rmdir(struct in
|
||||
@@ -2220,11 +2220,12 @@ static int selinux_inode_rmdir(struct in
|
||||
return may_link(dir, dentry, MAY_RMDIR);
|
||||
}
|
||||
|
||||
|
|
|
@ -79,7 +79,7 @@ Index: b/security/selinux/hooks.c
|
|||
===================================================================
|
||||
--- a/security/selinux/hooks.c
|
||||
+++ b/security/selinux/hooks.c
|
||||
@@ -2196,7 +2196,7 @@ static int selinux_inode_rename(struct i
|
||||
@@ -2239,7 +2239,7 @@ static int selinux_inode_rename(struct i
|
||||
return may_rename(old_inode, old_dentry, new_inode, new_dentry);
|
||||
}
|
||||
|
||||
|
|
|
@ -99,7 +99,7 @@ Index: b/security/selinux/hooks.c
|
|||
===================================================================
|
||||
--- a/security/selinux/hooks.c
|
||||
+++ b/security/selinux/hooks.c
|
||||
@@ -2363,7 +2363,8 @@ static int selinux_inode_listxattr (stru
|
||||
@@ -2406,7 +2406,8 @@ static int selinux_inode_listxattr (stru
|
||||
return dentry_has_perm(current, NULL, dentry, FILE__GETATTR);
|
||||
}
|
||||
|
||||
|
|
|
@ -105,7 +105,7 @@ Index: b/security/selinux/hooks.c
|
|||
===================================================================
|
||||
--- a/security/selinux/hooks.c
|
||||
+++ b/security/selinux/hooks.c
|
||||
@@ -2197,8 +2197,12 @@ static int selinux_inode_mknod(struct in
|
||||
@@ -2240,8 +2240,12 @@ static int selinux_inode_mknod(struct in
|
||||
return may_create(dir, dentry, inode_mode_to_security_class(mode));
|
||||
}
|
||||
|
||||
|
|
|
@ -81,7 +81,7 @@ Index: b/security/selinux/hooks.c
|
|||
===================================================================
|
||||
--- a/security/selinux/hooks.c
|
||||
+++ b/security/selinux/hooks.c
|
||||
@@ -2178,7 +2178,8 @@ static int selinux_inode_mkdir(struct in
|
||||
@@ -2221,7 +2221,8 @@ static int selinux_inode_mkdir(struct in
|
||||
return may_create(dir, dentry, SECCLASS_DIR);
|
||||
}
|
||||
|
||||
|
|
|
@ -85,7 +85,7 @@ Index: b/security/selinux/hooks.c
|
|||
===================================================================
|
||||
--- a/security/selinux/hooks.c
|
||||
+++ b/security/selinux/hooks.c
|
||||
@@ -2226,11 +2226,12 @@ static int selinux_inode_permission(stru
|
||||
@@ -2269,11 +2269,12 @@ static int selinux_inode_permission(stru
|
||||
file_mask_to_av(inode->i_mode, mask), NULL);
|
||||
}
|
||||
|
||||
|
|
|
@ -144,7 +144,7 @@ Index: b/security/selinux/hooks.c
|
|||
===================================================================
|
||||
--- a/security/selinux/hooks.c
|
||||
+++ b/security/selinux/hooks.c
|
||||
@@ -2264,7 +2264,9 @@ static int selinux_inode_getattr(struct
|
||||
@@ -2307,7 +2307,9 @@ static int selinux_inode_getattr(struct
|
||||
return dentry_has_perm(current, mnt, dentry, FILE__GETATTR);
|
||||
}
|
||||
|
||||
|
@ -155,7 +155,7 @@ Index: b/security/selinux/hooks.c
|
|||
{
|
||||
struct task_security_struct *tsec = current->security;
|
||||
struct inode *inode = dentry->d_inode;
|
||||
@@ -2324,7 +2326,9 @@ static int selinux_inode_setxattr(struct
|
||||
@@ -2367,7 +2369,9 @@ static int selinux_inode_setxattr(struct
|
||||
&ad);
|
||||
}
|
||||
|
||||
|
|
|
@ -78,7 +78,7 @@ Index: b/security/selinux/hooks.c
|
|||
===================================================================
|
||||
--- a/security/selinux/hooks.c
|
||||
+++ b/security/selinux/hooks.c
|
||||
@@ -2161,7 +2161,8 @@ static int selinux_inode_unlink(struct i
|
||||
@@ -2204,7 +2204,8 @@ static int selinux_inode_unlink(struct i
|
||||
return may_link(dir, dentry, MAY_UNLINK);
|
||||
}
|
||||
|
||||
|
|
|
@ -81,7 +81,7 @@ Index: b/security/selinux/hooks.c
|
|||
===================================================================
|
||||
--- a/security/selinux/hooks.c
|
||||
+++ b/security/selinux/hooks.c
|
||||
@@ -2156,11 +2156,12 @@ static int selinux_inode_link(struct den
|
||||
@@ -2199,11 +2199,12 @@ static int selinux_inode_link(struct den
|
||||
return may_link(dir, old_dentry, MAY_LINK);
|
||||
}
|
||||
|
||||
|
|
|
@ -1,5 +1,6 @@
|
|||
security-create.diff
|
||||
proc_setattr.diff
|
||||
proc_sys_setattr.diff
|
||||
remove_suid.diff
|
||||
vfs-notify_change.diff
|
||||
security-setattr.diff
|
||||
|
@ -60,6 +61,7 @@ apparmor-d_namespace.diff
|
|||
alloc-pathnames.diff
|
||||
fix-change_hat.diff
|
||||
typo.diff
|
||||
typo2.diff
|
||||
reintroduce-revalidation.diff
|
||||
remove-debug-flag.diff
|
||||
rename-profile-lock.diff
|
||||
|
|
17
kernel-patches/for-mainline/typo2.diff
Normal file
17
kernel-patches/for-mainline/typo2.diff
Normal file
|
@ -0,0 +1,17 @@
|
|||
---
|
||||
security/apparmor/inline.h | 2 +-
|
||||
1 file changed, 1 insertion(+), 1 deletion(-)
|
||||
|
||||
Index: b/security/apparmor/inline.h
|
||||
===================================================================
|
||||
--- a/security/apparmor/inline.h
|
||||
+++ b/security/apparmor/inline.h
|
||||
@@ -60,7 +60,7 @@ static inline struct aa_profile *aa_get_
|
||||
* profile. The cxt_lock must be held to ensure consistency against
|
||||
* other writers. Some write paths (ex. aa_register) require
|
||||
* cxt->profile not to change over several operations, so the calling
|
||||
- * function is responsible for grabing the cxt_lock to meet its
|
||||
+ * function is responsible for grabbing the cxt_lock to meet its
|
||||
* consistency constraints before calling aa_switch_to_profile
|
||||
*/
|
||||
static inline void aa_switch_to_profile(struct aa_task_context *cxt,
|
|
@ -148,7 +148,7 @@ Index: b/include/linux/xattr.h
|
|||
===================================================================
|
||||
--- a/include/linux/xattr.h
|
||||
+++ b/include/linux/xattr.h
|
||||
@@ -40,7 +40,8 @@ struct xattr_handler {
|
||||
@@ -46,7 +46,8 @@ struct xattr_handler {
|
||||
size_t size, int flags);
|
||||
};
|
||||
|
||||
|
|
|
@ -30,7 +30,7 @@ Index: b/include/linux/fs.h
|
|||
===================================================================
|
||||
--- a/include/linux/fs.h
|
||||
+++ b/include/linux/fs.h
|
||||
@@ -982,7 +982,7 @@ extern int vfs_create(struct inode *, st
|
||||
@@ -983,7 +983,7 @@ extern int vfs_create(struct inode *, st
|
||||
extern int vfs_mkdir(struct inode *, struct dentry *, struct vfsmount *, int);
|
||||
extern int vfs_mknod(struct inode *, struct dentry *, struct vfsmount *, int, dev_t);
|
||||
extern int vfs_symlink(struct inode *, struct dentry *, struct vfsmount *, const char *, int);
|
||||
|
@ -43,7 +43,7 @@ Index: b/fs/ecryptfs/inode.c
|
|||
===================================================================
|
||||
--- a/fs/ecryptfs/inode.c
|
||||
+++ b/fs/ecryptfs/inode.c
|
||||
@@ -403,19 +403,24 @@ static int ecryptfs_link(struct dentry *
|
||||
@@ -414,19 +414,24 @@ static int ecryptfs_link(struct dentry *
|
||||
struct dentry *new_dentry)
|
||||
{
|
||||
struct dentry *lower_old_dentry;
|
||||
|
|
|
@ -84,7 +84,7 @@ Index: b/include/linux/xattr.h
|
|||
===================================================================
|
||||
--- a/include/linux/xattr.h
|
||||
+++ b/include/linux/xattr.h
|
||||
@@ -42,7 +42,8 @@ struct xattr_handler {
|
||||
@@ -48,7 +48,8 @@ struct xattr_handler {
|
||||
|
||||
ssize_t vfs_getxattr(struct dentry *, struct vfsmount *, char *, void *,
|
||||
size_t);
|
||||
|
|
|
@ -7,7 +7,7 @@ Index: b/fs/ecryptfs/inode.c
|
|||
===================================================================
|
||||
--- a/fs/ecryptfs/inode.c
|
||||
+++ b/fs/ecryptfs/inode.c
|
||||
@@ -501,11 +501,14 @@ static int ecryptfs_mkdir(struct inode *
|
||||
@@ -512,11 +512,14 @@ static int ecryptfs_mkdir(struct inode *
|
||||
{
|
||||
int rc;
|
||||
struct dentry *lower_dentry;
|
||||
|
@ -78,7 +78,7 @@ Index: b/include/linux/fs.h
|
|||
===================================================================
|
||||
--- a/include/linux/fs.h
|
||||
+++ b/include/linux/fs.h
|
||||
@@ -979,7 +979,7 @@ extern void unlock_super(struct super_bl
|
||||
@@ -980,7 +980,7 @@ extern void unlock_super(struct super_bl
|
||||
*/
|
||||
extern int vfs_permission(struct nameidata *, int);
|
||||
extern int vfs_create(struct inode *, struct dentry *, int, struct nameidata *);
|
||||
|
|
|
@ -7,7 +7,7 @@ Index: b/fs/ecryptfs/inode.c
|
|||
===================================================================
|
||||
--- a/fs/ecryptfs/inode.c
|
||||
+++ b/fs/ecryptfs/inode.c
|
||||
@@ -552,11 +552,14 @@ ecryptfs_mknod(struct inode *dir, struct
|
||||
@@ -563,11 +563,14 @@ ecryptfs_mknod(struct inode *dir, struct
|
||||
{
|
||||
int rc;
|
||||
struct dentry *lower_dentry;
|
||||
|
@ -71,7 +71,7 @@ Index: b/include/linux/fs.h
|
|||
===================================================================
|
||||
--- a/include/linux/fs.h
|
||||
+++ b/include/linux/fs.h
|
||||
@@ -980,7 +980,7 @@ extern void unlock_super(struct super_bl
|
||||
@@ -981,7 +981,7 @@ extern void unlock_super(struct super_bl
|
||||
extern int vfs_permission(struct nameidata *, int);
|
||||
extern int vfs_create(struct inode *, struct dentry *, int, struct nameidata *);
|
||||
extern int vfs_mkdir(struct inode *, struct dentry *, struct vfsmount *, int);
|
||||
|
|
|
@ -31,7 +31,7 @@ Index: b/include/linux/fs.h
|
|||
===================================================================
|
||||
--- a/include/linux/fs.h
|
||||
+++ b/include/linux/fs.h
|
||||
@@ -1457,8 +1457,8 @@ static inline int break_lease(struct ino
|
||||
@@ -1458,8 +1458,8 @@ static inline int break_lease(struct ino
|
||||
|
||||
/* fs/open.c */
|
||||
|
||||
|
@ -42,7 +42,7 @@ Index: b/include/linux/fs.h
|
|||
extern long do_sys_open(int fdf, const char __user *filename, int flags,
|
||||
int mode);
|
||||
extern struct file *filp_open(const char *, int, int);
|
||||
@@ -1605,7 +1605,7 @@ extern int do_remount_sb(struct super_bl
|
||||
@@ -1612,7 +1612,7 @@ extern int do_remount_sb(struct super_bl
|
||||
#ifdef CONFIG_BLOCK
|
||||
extern sector_t bmap(struct inode *, sector_t);
|
||||
#endif
|
||||
|
@ -55,7 +55,7 @@ Index: b/fs/ecryptfs/inode.c
|
|||
===================================================================
|
||||
--- a/fs/ecryptfs/inode.c
|
||||
+++ b/fs/ecryptfs/inode.c
|
||||
@@ -856,12 +856,14 @@ static int ecryptfs_setattr(struct dentr
|
||||
@@ -873,12 +873,14 @@ static int ecryptfs_setattr(struct dentr
|
||||
{
|
||||
int rc = 0;
|
||||
struct dentry *lower_dentry;
|
||||
|
@ -70,7 +70,7 @@ Index: b/fs/ecryptfs/inode.c
|
|||
inode = dentry->d_inode;
|
||||
lower_inode = ecryptfs_inode_to_lower(inode);
|
||||
if (ia->ia_valid & ATTR_SIZE) {
|
||||
@@ -876,7 +878,7 @@ static int ecryptfs_setattr(struct dentr
|
||||
@@ -893,7 +895,7 @@ static int ecryptfs_setattr(struct dentr
|
||||
if (rc < 0)
|
||||
goto out;
|
||||
}
|
||||
|
@ -294,7 +294,7 @@ Index: b/fs/sysfs/file.c
|
|||
===================================================================
|
||||
--- a/fs/sysfs/file.c
|
||||
+++ b/fs/sysfs/file.c
|
||||
@@ -526,7 +526,7 @@ int sysfs_chmod_file(struct kobject *kob
|
||||
@@ -560,7 +560,7 @@ int sysfs_chmod_file(struct kobject *kob
|
||||
newattrs.ia_mode = (mode & S_IALLUGO) |
|
||||
(inode->i_mode & ~S_IALLUGO);
|
||||
newattrs.ia_valid = ATTR_MODE | ATTR_CTIME;
|
||||
|
@ -329,7 +329,7 @@ Index: b/mm/filemap.c
|
|||
===================================================================
|
||||
--- a/mm/filemap.c
|
||||
+++ b/mm/filemap.c
|
||||
@@ -1897,7 +1897,7 @@ int __remove_suid(struct path *path, int
|
||||
@@ -1877,7 +1877,7 @@ int __remove_suid(struct path *path, int
|
||||
struct iattr newattrs;
|
||||
|
||||
newattrs.ia_valid = ATTR_FORCE | kill;
|
||||
|
@ -342,7 +342,7 @@ Index: b/fs/exec.c
|
|||
===================================================================
|
||||
--- a/fs/exec.c
|
||||
+++ b/fs/exec.c
|
||||
@@ -1534,7 +1534,8 @@ int do_coredump(long signr, int exit_cod
|
||||
@@ -1532,7 +1532,8 @@ int do_coredump(long signr, int exit_cod
|
||||
goto close_fail;
|
||||
if (!file->f_op->write)
|
||||
goto close_fail;
|
||||
|
|
|
@ -79,7 +79,7 @@ Index: b/include/linux/xattr.h
|
|||
===================================================================
|
||||
--- a/include/linux/xattr.h
|
||||
+++ b/include/linux/xattr.h
|
||||
@@ -46,7 +46,7 @@ ssize_t vfs_listxattr(struct dentry *d,
|
||||
@@ -52,7 +52,7 @@ ssize_t vfs_listxattr(struct dentry *d,
|
||||
size_t size);
|
||||
int vfs_setxattr(struct dentry *, struct vfsmount *, char *, void *, size_t,
|
||||
int);
|
||||
|
|
|
@ -7,7 +7,7 @@ Index: b/fs/ecryptfs/inode.c
|
|||
===================================================================
|
||||
--- a/fs/ecryptfs/inode.c
|
||||
+++ b/fs/ecryptfs/inode.c
|
||||
@@ -590,19 +590,24 @@ ecryptfs_rename(struct inode *old_dir, s
|
||||
@@ -601,19 +601,24 @@ ecryptfs_rename(struct inode *old_dir, s
|
||||
{
|
||||
int rc;
|
||||
struct dentry *lower_old_dentry;
|
||||
|
@ -110,7 +110,7 @@ Index: b/include/linux/fs.h
|
|||
===================================================================
|
||||
--- a/include/linux/fs.h
|
||||
+++ b/include/linux/fs.h
|
||||
@@ -985,7 +985,7 @@ extern int vfs_symlink(struct inode *, s
|
||||
@@ -986,7 +986,7 @@ extern int vfs_symlink(struct inode *, s
|
||||
extern int vfs_link(struct dentry *, struct vfsmount *, struct inode *, struct dentry *, struct vfsmount *);
|
||||
extern int vfs_rmdir(struct inode *, struct dentry *, struct vfsmount *);
|
||||
extern int vfs_unlink(struct inode *, struct dentry *, struct vfsmount *);
|
||||
|
|
|
@ -7,7 +7,7 @@ Index: b/fs/ecryptfs/inode.c
|
|||
===================================================================
|
||||
--- a/fs/ecryptfs/inode.c
|
||||
+++ b/fs/ecryptfs/inode.c
|
||||
@@ -534,14 +534,16 @@ out:
|
||||
@@ -545,14 +545,16 @@ out:
|
||||
static int ecryptfs_rmdir(struct inode *dir, struct dentry *dentry)
|
||||
{
|
||||
struct dentry *lower_dentry;
|
||||
|
@ -90,7 +90,7 @@ Index: b/include/linux/fs.h
|
|||
===================================================================
|
||||
--- a/include/linux/fs.h
|
||||
+++ b/include/linux/fs.h
|
||||
@@ -983,7 +983,7 @@ extern int vfs_mkdir(struct inode *, str
|
||||
@@ -984,7 +984,7 @@ extern int vfs_mkdir(struct inode *, str
|
||||
extern int vfs_mknod(struct inode *, struct dentry *, struct vfsmount *, int, dev_t);
|
||||
extern int vfs_symlink(struct inode *, struct dentry *, struct vfsmount *, const char *, int);
|
||||
extern int vfs_link(struct dentry *, struct vfsmount *, struct inode *, struct dentry *, struct vfsmount *);
|
||||
|
|
|
@ -135,7 +135,7 @@ Index: b/include/linux/xattr.h
|
|||
===================================================================
|
||||
--- a/include/linux/xattr.h
|
||||
+++ b/include/linux/xattr.h
|
||||
@@ -42,7 +42,8 @@ struct xattr_handler {
|
||||
@@ -48,7 +48,8 @@ struct xattr_handler {
|
||||
|
||||
ssize_t vfs_getxattr(struct dentry *, char *, void *, size_t);
|
||||
ssize_t vfs_listxattr(struct dentry *d, char *list, size_t size);
|
||||
|
|
|
@ -7,7 +7,7 @@ Index: b/fs/ecryptfs/inode.c
|
|||
===================================================================
|
||||
--- a/fs/ecryptfs/inode.c
|
||||
+++ b/fs/ecryptfs/inode.c
|
||||
@@ -462,6 +462,7 @@ static int ecryptfs_symlink(struct inode
|
||||
@@ -473,6 +473,7 @@ static int ecryptfs_symlink(struct inode
|
||||
{
|
||||
int rc;
|
||||
struct dentry *lower_dentry;
|
||||
|
@ -15,7 +15,7 @@ Index: b/fs/ecryptfs/inode.c
|
|||
struct dentry *lower_dir_dentry;
|
||||
umode_t mode;
|
||||
char *encoded_symname;
|
||||
@@ -470,6 +471,7 @@ static int ecryptfs_symlink(struct inode
|
||||
@@ -481,6 +482,7 @@ static int ecryptfs_symlink(struct inode
|
||||
|
||||
lower_dentry = ecryptfs_dentry_to_lower(dentry);
|
||||
dget(lower_dentry);
|
||||
|
@ -23,7 +23,7 @@ Index: b/fs/ecryptfs/inode.c
|
|||
lower_dir_dentry = lock_parent(lower_dentry);
|
||||
mode = S_IALLUGO;
|
||||
encoded_symlen = ecryptfs_encode_filename(crypt_stat, symname,
|
||||
@@ -479,7 +481,7 @@ static int ecryptfs_symlink(struct inode
|
||||
@@ -490,7 +492,7 @@ static int ecryptfs_symlink(struct inode
|
||||
rc = encoded_symlen;
|
||||
goto out_lock;
|
||||
}
|
||||
|
@ -95,7 +95,7 @@ Index: b/include/linux/fs.h
|
|||
===================================================================
|
||||
--- a/include/linux/fs.h
|
||||
+++ b/include/linux/fs.h
|
||||
@@ -981,7 +981,7 @@ extern int vfs_permission(struct nameida
|
||||
@@ -982,7 +982,7 @@ extern int vfs_permission(struct nameida
|
||||
extern int vfs_create(struct inode *, struct dentry *, int, struct nameidata *);
|
||||
extern int vfs_mkdir(struct inode *, struct dentry *, struct vfsmount *, int);
|
||||
extern int vfs_mknod(struct inode *, struct dentry *, struct vfsmount *, int, dev_t);
|
||||
|
|
|
@ -7,7 +7,7 @@ Index: b/fs/ecryptfs/inode.c
|
|||
===================================================================
|
||||
--- a/fs/ecryptfs/inode.c
|
||||
+++ b/fs/ecryptfs/inode.c
|
||||
@@ -445,10 +445,11 @@ static int ecryptfs_unlink(struct inode
|
||||
@@ -456,10 +456,11 @@ static int ecryptfs_unlink(struct inode
|
||||
{
|
||||
int rc = 0;
|
||||
struct dentry *lower_dentry = ecryptfs_dentry_to_lower(dentry);
|
||||
|
@ -72,7 +72,7 @@ Index: b/include/linux/fs.h
|
|||
===================================================================
|
||||
--- a/include/linux/fs.h
|
||||
+++ b/include/linux/fs.h
|
||||
@@ -984,7 +984,7 @@ extern int vfs_mknod(struct inode *, str
|
||||
@@ -985,7 +985,7 @@ extern int vfs_mknod(struct inode *, str
|
||||
extern int vfs_symlink(struct inode *, struct dentry *, struct vfsmount *, const char *, int);
|
||||
extern int vfs_link(struct dentry *, struct vfsmount *, struct inode *, struct dentry *, struct vfsmount *);
|
||||
extern int vfs_rmdir(struct inode *, struct dentry *, struct vfsmount *);
|
||||
|
|
Loading…
Add table
Reference in a new issue