diff options
| -rw-r--r-- | fs/compat.c | 8 | ||||
| -rw-r--r-- | fs/open.c | 3 |
2 files changed, 6 insertions, 5 deletions
diff --git a/fs/compat.c b/fs/compat.c index ed43e17a5dc..b4660428176 100644 --- a/fs/compat.c +++ b/fs/compat.c | |||
| @@ -197,8 +197,8 @@ static int put_compat_statfs(struct compat_statfs __user *ubuf, struct kstatfs * | |||
| 197 | { | 197 | { |
| 198 | 198 | ||
| 199 | if (sizeof ubuf->f_blocks == 4) { | 199 | if (sizeof ubuf->f_blocks == 4) { |
| 200 | if ((kbuf->f_blocks | kbuf->f_bfree | kbuf->f_bavail) & | 200 | if ((kbuf->f_blocks | kbuf->f_bfree | kbuf->f_bavail | |
| 201 | 0xffffffff00000000ULL) | 201 | kbuf->f_bsize | kbuf->f_frsize) & 0xffffffff00000000ULL) |
| 202 | return -EOVERFLOW; | 202 | return -EOVERFLOW; |
| 203 | /* f_files and f_ffree may be -1; it's okay | 203 | /* f_files and f_ffree may be -1; it's okay |
| 204 | * to stuff that into 32 bits */ | 204 | * to stuff that into 32 bits */ |
| @@ -271,8 +271,8 @@ out: | |||
| 271 | static int put_compat_statfs64(struct compat_statfs64 __user *ubuf, struct kstatfs *kbuf) | 271 | static int put_compat_statfs64(struct compat_statfs64 __user *ubuf, struct kstatfs *kbuf) |
| 272 | { | 272 | { |
| 273 | if (sizeof ubuf->f_blocks == 4) { | 273 | if (sizeof ubuf->f_blocks == 4) { |
| 274 | if ((kbuf->f_blocks | kbuf->f_bfree | kbuf->f_bavail) & | 274 | if ((kbuf->f_blocks | kbuf->f_bfree | kbuf->f_bavail | |
| 275 | 0xffffffff00000000ULL) | 275 | kbuf->f_bsize | kbuf->f_frsize) & 0xffffffff00000000ULL) |
| 276 | return -EOVERFLOW; | 276 | return -EOVERFLOW; |
| 277 | /* f_files and f_ffree may be -1; it's okay | 277 | /* f_files and f_ffree may be -1; it's okay |
| 278 | * to stuff that into 32 bits */ | 278 | * to stuff that into 32 bits */ |
| @@ -64,7 +64,8 @@ static int vfs_statfs_native(struct dentry *dentry, struct statfs *buf) | |||
| 64 | memcpy(buf, &st, sizeof(st)); | 64 | memcpy(buf, &st, sizeof(st)); |
| 65 | else { | 65 | else { |
| 66 | if (sizeof buf->f_blocks == 4) { | 66 | if (sizeof buf->f_blocks == 4) { |
| 67 | if ((st.f_blocks | st.f_bfree | st.f_bavail) & | 67 | if ((st.f_blocks | st.f_bfree | st.f_bavail | |
| 68 | st.f_bsize | st.f_frsize) & | ||
| 68 | 0xffffffff00000000ULL) | 69 | 0xffffffff00000000ULL) |
| 69 | return -EOVERFLOW; | 70 | return -EOVERFLOW; |
| 70 | /* | 71 | /* |
