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 <[email protected]> Signed-off-by: Ritesh Harjani (IBM) <[email protected]> Reviewed-by: Darrick J. Wong <[email protected]>
1 parent cc86181 commit eee2d2e

File tree

1 file changed

+1
-1
lines changed

1 file changed

+1
-1
lines changed

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)