[<prev] [next>] [<thread-prev] [thread-next>] [day] [month] [year] [list]
Message-ID: <20180322154935.GJ2852@thunk.org>
Date: Thu, 22 Mar 2018 11:49:35 -0400
From: "Theodore Y. Ts'o" <tytso@....edu>
To: Jan Kara <jack@...e.cz>
Cc: linux-ext4@...r.kernel.org, Jiri Slaby <jslaby@...e.cz>
Subject: Re: [PATCH] ext4: Fix offset overflow on 32-bit archs in
ext4_iomap_begin()
On Tue, Feb 20, 2018 at 06:23:07PM +0100, Jan Kara wrote:
> From: Jiri Slaby <jslaby@...e.cz>
>
> ext4_iomap_begin() has a bug where offset returned in the iomap
> structure will be truncated to unsigned long size. On 64-bit
> architectures this is fine but on 32-bit architectures obviously not.
> Not many places actually use the offset stored in the iomap structure
> but one of visible failures is in SEEK_HOLE / SEEK_DATA implementation.
> If we create a file like:
>
> dd if=/dev/urandom of=file bs=1k seek=8m count=1
>
> then
>
> lseek64("file", 0x100000000ULL, SEEK_DATA)
>
> wrongly returns 0x100000000 on unfixed kernel while it should return
> 0x200000000. Avoid the overflow by proper type cast.
>
> Fixes: 545052e9e35a ("ext4: Switch to iomap for SEEK_HOLE / SEEK_DATA")
> Signed-off-by: Jiri Slaby <jslaby@...e.cz>
> Signed-off-by: Jan Kara <jack@...e.cz>
Thanks, applied.
- Ted
Powered by blists - more mailing lists