diff options
| -rw-r--r-- | security/apparmor/apparmorfs.c | 4 |
1 files changed, 3 insertions, 1 deletions
diff --git a/security/apparmor/apparmorfs.c b/security/apparmor/apparmorfs.c index 7320331b44ab..544ff5837cb6 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); |
