diff options
| author | David S. Miller <davem@davemloft.net> | 2019-10-05 13:37:23 -0700 |
|---|---|---|
| committer | David S. Miller <davem@davemloft.net> | 2019-10-05 13:37:23 -0700 |
| commit | 6f4c930e02355664d89c976eccea5d999a90de16 (patch) | |
| tree | bc08932fbf43b9560ba5bde3284674054e3b56eb /fs/statfs.c | |
| parent | 26e0105550862a137eba701e2f4e3eeb343759e9 (diff) | |
| parent | 2d00aee21a5d4966e086d98f9d710afb92fb14e8 (diff) | |
| download | linux-6f4c930e02355664d89c976eccea5d999a90de16.tar.gz linux-6f4c930e02355664d89c976eccea5d999a90de16.tar.bz2 linux-6f4c930e02355664d89c976eccea5d999a90de16.zip | |
Merge git://git.kernel.org/pub/scm/linux/kernel/git/netdev/net
Diffstat (limited to 'fs/statfs.c')
| -rw-r--r-- | fs/statfs.c | 17 |
1 files changed, 4 insertions, 13 deletions
diff --git a/fs/statfs.c b/fs/statfs.c index eea7af6f2f22..2616424012ea 100644 --- a/fs/statfs.c +++ b/fs/statfs.c @@ -318,19 +318,10 @@ COMPAT_SYSCALL_DEFINE2(fstatfs, unsigned int, fd, struct compat_statfs __user *, static int put_compat_statfs64(struct compat_statfs64 __user *ubuf, struct kstatfs *kbuf) { struct compat_statfs64 buf; - if (sizeof(ubuf->f_bsize) == 4) { - if ((kbuf->f_type | kbuf->f_bsize | kbuf->f_namelen | - kbuf->f_frsize | kbuf->f_flags) & 0xffffffff00000000ULL) - return -EOVERFLOW; - /* f_files and f_ffree may be -1; it's okay - * to stuff that into 32 bits */ - if (kbuf->f_files != 0xffffffffffffffffULL - && (kbuf->f_files & 0xffffffff00000000ULL)) - return -EOVERFLOW; - if (kbuf->f_ffree != 0xffffffffffffffffULL - && (kbuf->f_ffree & 0xffffffff00000000ULL)) - return -EOVERFLOW; - } + + if ((kbuf->f_bsize | kbuf->f_frsize) & 0xffffffff00000000ULL) + return -EOVERFLOW; + memset(&buf, 0, sizeof(struct compat_statfs64)); buf.f_type = kbuf->f_type; buf.f_bsize = kbuf->f_bsize; |
