Thread (3 messages) 3 messages, 2 authors, 2018-08-02

Re: [PATCH] block/compat_ioctl: fix range check in BLKGETSIZE

From: Khazhismel Kumykov <hidden>
Date: 2018-07-31 18:23:39
Also in: lkml

Ping?

On Fri, Apr 6, 2018 at 3:23 PM, Khazhismel Kumykov [off-list ref] wrote:
quoted hunk ↗ jump to hunk
kernel ulong and compat_ulong_t may not be same width. Use type directly
to eliminate mismatches.

This would result in truncation rather than EFBIG for 32bit mode for
large disks.

Signed-off-by: Khazhismel Kumykov <redacted>
---
 block/compat_ioctl.c | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/block/compat_ioctl.c b/block/compat_ioctl.c
index 6ca015f92766..3a2c77f07da8 100644
--- a/block/compat_ioctl.c
+++ b/block/compat_ioctl.c
@@ -388,7 +388,7 @@ long compat_blkdev_ioctl(struct file *file, unsigned cmd, unsigned long arg)
                return 0;
        case BLKGETSIZE:
                size = i_size_read(bdev->bd_inode);
-               if ((size >> 9) > ~0UL)
+               if ((size >> 9) > ~((compat_ulong_t)0UL))
                        return -EFBIG;
                return compat_put_ulong(arg, size >> 9);

--
2.17.0.484.g0c8726318c-goog

Attachments

  • smime.p7s [application/pkcs7-signature] 4843 bytes
Keyboard shortcuts
hback out one level
jnext message in thread
kprevious message in thread
ldrill in
Escclose help / fold thread tree
?toggle this help