diff options
author | Glenn Elliott <gelliott@cs.unc.edu> | 2012-03-04 19:47:13 -0500 |
---|---|---|
committer | Glenn Elliott <gelliott@cs.unc.edu> | 2012-03-04 19:47:13 -0500 |
commit | c71c03bda1e86c9d5198c5d83f712e695c4f2a1e (patch) | |
tree | ecb166cb3e2b7e2adb3b5e292245fefd23381ac8 /security/apparmor/apparmorfs.c | |
parent | ea53c912f8a86a8567697115b6a0d8152beee5c8 (diff) | |
parent | 6a00f206debf8a5c8899055726ad127dbeeed098 (diff) |
Merge branch 'mpi-master' into wip-k-fmlpwip-k-fmlp
Conflicts:
litmus/sched_cedf.c
Diffstat (limited to 'security/apparmor/apparmorfs.c')
-rw-r--r-- | security/apparmor/apparmorfs.c | 13 |
1 files changed, 9 insertions, 4 deletions
diff --git a/security/apparmor/apparmorfs.c b/security/apparmor/apparmorfs.c index 7320331b44ab..0848292982a2 100644 --- a/security/apparmor/apparmorfs.c +++ b/security/apparmor/apparmorfs.c | |||
@@ -29,7 +29,7 @@ | |||
29 | * aa_simple_write_to_buffer - common routine for getting policy from user | 29 | * aa_simple_write_to_buffer - common routine for getting policy from user |
30 | * @op: operation doing the user buffer copy | 30 | * @op: operation doing the user buffer copy |
31 | * @userbuf: user buffer to copy data from (NOT NULL) | 31 | * @userbuf: user buffer to copy data from (NOT NULL) |
32 | * @alloc_size: size of user buffer | 32 | * @alloc_size: size of user buffer (REQUIRES: @alloc_size >= @copy_size) |
33 | * @copy_size: size of data to copy from user buffer | 33 | * @copy_size: size of data to copy from user buffer |
34 | * @pos: position write is at in the file (NOT NULL) | 34 | * @pos: position write is at in the file (NOT NULL) |
35 | * | 35 | * |
@@ -42,6 +42,8 @@ static char *aa_simple_write_to_buffer(int op, const char __user *userbuf, | |||
42 | { | 42 | { |
43 | char *data; | 43 | char *data; |
44 | 44 | ||
45 | BUG_ON(copy_size > alloc_size); | ||
46 | |||
45 | if (*pos != 0) | 47 | if (*pos != 0) |
46 | /* only writes from pos 0, that is complete writes */ | 48 | /* only writes from pos 0, that is complete writes */ |
47 | return ERR_PTR(-ESPIPE); | 49 | return ERR_PTR(-ESPIPE); |
@@ -86,7 +88,8 @@ static ssize_t profile_load(struct file *f, const char __user *buf, size_t size, | |||
86 | } | 88 | } |
87 | 89 | ||
88 | static const struct file_operations aa_fs_profile_load = { | 90 | static const struct file_operations aa_fs_profile_load = { |
89 | .write = profile_load | 91 | .write = profile_load, |
92 | .llseek = default_llseek, | ||
90 | }; | 93 | }; |
91 | 94 | ||
92 | /* .replace file hook fn to load and/or replace policy */ | 95 | /* .replace file hook fn to load and/or replace policy */ |
@@ -107,7 +110,8 @@ static ssize_t profile_replace(struct file *f, const char __user *buf, | |||
107 | } | 110 | } |
108 | 111 | ||
109 | static const struct file_operations aa_fs_profile_replace = { | 112 | static const struct file_operations aa_fs_profile_replace = { |
110 | .write = profile_replace | 113 | .write = profile_replace, |
114 | .llseek = default_llseek, | ||
111 | }; | 115 | }; |
112 | 116 | ||
113 | /* .remove file hook fn to remove loaded policy */ | 117 | /* .remove file hook fn to remove loaded policy */ |
@@ -134,7 +138,8 @@ static ssize_t profile_remove(struct file *f, const char __user *buf, | |||
134 | } | 138 | } |
135 | 139 | ||
136 | static const struct file_operations aa_fs_profile_remove = { | 140 | static const struct file_operations aa_fs_profile_remove = { |
137 | .write = profile_remove | 141 | .write = profile_remove, |
142 | .llseek = default_llseek, | ||
138 | }; | 143 | }; |
139 | 144 | ||
140 | /** Base file system setup **/ | 145 | /** Base file system setup **/ |