|
@@ -197,8 +197,8 @@ static int put_compat_statfs(struct compat_statfs __user *ubuf, struct kstatfs *
|
|
|
{
|
|
|
|
|
|
if (sizeof ubuf->f_blocks == 4) {
|
|
|
- if ((kbuf->f_blocks | kbuf->f_bfree | kbuf->f_bavail) &
|
|
|
- 0xffffffff00000000ULL)
|
|
|
+ if ((kbuf->f_blocks | kbuf->f_bfree | kbuf->f_bavail |
|
|
|
+ kbuf->f_bsize | kbuf->f_frsize) & 0xffffffff00000000ULL)
|
|
|
return -EOVERFLOW;
|
|
|
/* f_files and f_ffree may be -1; it's okay
|
|
|
* to stuff that into 32 bits */
|
|
@@ -271,8 +271,8 @@ out:
|
|
|
static int put_compat_statfs64(struct compat_statfs64 __user *ubuf, struct kstatfs *kbuf)
|
|
|
{
|
|
|
if (sizeof ubuf->f_blocks == 4) {
|
|
|
- if ((kbuf->f_blocks | kbuf->f_bfree | kbuf->f_bavail) &
|
|
|
- 0xffffffff00000000ULL)
|
|
|
+ if ((kbuf->f_blocks | kbuf->f_bfree | kbuf->f_bavail |
|
|
|
+ kbuf->f_bsize | kbuf->f_frsize) & 0xffffffff00000000ULL)
|
|
|
return -EOVERFLOW;
|
|
|
/* f_files and f_ffree may be -1; it's okay
|
|
|
* to stuff that into 32 bits */
|