Skip to content

Commit eee2d2e

Browse files
committed
iomap: Fix possible overflow condition in iomap_write_delalloc_scan
folio_next_index() returns an unsigned long value which left shifted by PAGE_SHIFT could possibly cause an overflow on 32-bit system. Instead use folio_pos(folio) + folio_size(folio), which does this correctly. Suggested-by: Matthew Wilcox <willy@infradead.org> Signed-off-by: Ritesh Harjani (IBM) <ritesh.list@gmail.com> Reviewed-by: Darrick J. Wong <djwong@kernel.org>
1 parent cc86181 commit eee2d2e

1 file changed

Lines changed: 1 addition & 1 deletion

File tree

fs/iomap/buffered-io.c

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -934,7 +934,7 @@ static int iomap_write_delalloc_scan(struct inode *inode,
934934
* the end of this data range, not the end of the folio.
935935
*/
936936
*punch_start_byte = min_t(loff_t, end_byte,
937-
folio_next_index(folio) << PAGE_SHIFT);
937+
folio_pos(folio) + folio_size(folio));
938938
}
939939

940940
/* move offset to start of next folio in range */

0 commit comments

Comments
 (0)