From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.4.0 (2014-02-07) on aws-us-west-2-korg-lkml-1.web.codeaurora.org Received: from vger.kernel.org (vger.kernel.org [23.128.96.18]) by smtp.lore.kernel.org (Postfix) with ESMTP id 2CA38EC8740 for ; Thu, 7 Sep 2023 16:18:47 +0000 (UTC) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S236807AbjIGQSo (ORCPT ); Thu, 7 Sep 2023 12:18:44 -0400 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:52118 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S242305AbjIGQSG (ORCPT ); Thu, 7 Sep 2023 12:18:06 -0400 Received: from smtp.kernel.org (relay.kernel.org [52.25.139.140]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id 991FDB189; Thu, 7 Sep 2023 08:46:39 -0700 (PDT) Received: by smtp.kernel.org (Postfix) with ESMTPSA id 86183C4AF69; Thu, 7 Sep 2023 15:43:51 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org; s=k20201202; t=1694101432; bh=KktTyNPU1YnBoEEJ9R4u/lyHf76cmL8N7OemSGxaDss=; h=From:To:Cc:Subject:Date:From; b=KaYk0o3beak81s6CoJh0JCf41Y969HBJhHt5t9ENsHm6Ms5bKGvh7shRjUst5K9Tt 5trqH5sG24GrUHRO6vJQXRQ72yYR37E37ywpKKS69zb05OdkaiOdlmKe0eCuhaVLk3 6TvRDFzAFqZ19JDePFnmk71HnlO2Fy0vhUTFmXQdJQxvx6vWQZfWvgueSZsLVwzMdl Ga+wKzUF8C/Wdw4cFblot0qQx0vMmveJTq0ajMqi4ck7RX5A/UYRoj0YTIqThay5lH ey0dD7k2xLFAkqwgEGPrLzuWMAoGos7M3Qhwq24QNz/f5vDt+wbHCkn0HdFORkFBC9 kL+4JeW1YZCiQ== From: Sasha Levin To: linux-kernel@vger.kernel.org, stable@vger.kernel.org Cc: "Ritesh Harjani (IBM)" , Matthew Wilcox , "Darrick J . Wong" , Sasha Levin , linux-xfs@vger.kernel.org, linux-fsdevel@vger.kernel.org Subject: [PATCH AUTOSEL 6.4 1/5] iomap: Fix possible overflow condition in iomap_write_delalloc_scan Date: Thu, 7 Sep 2023 11:43:45 -0400 Message-Id: <20230907154349.3421707-1-sashal@kernel.org> X-Mailer: git-send-email 2.40.1 MIME-Version: 1.0 X-stable: review X-Patchwork-Hint: Ignore X-stable-base: Linux 6.4.15 Content-Transfer-Encoding: 8bit Precedence: bulk List-ID: X-Mailing-List: linux-fsdevel@vger.kernel.org From: "Ritesh Harjani (IBM)" [ Upstream commit eee2d2e6ea5550118170dbd5bb1316ceb38455fb ] 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 Signed-off-by: Ritesh Harjani (IBM) Reviewed-by: Darrick J. Wong Signed-off-by: Sasha Levin --- fs/iomap/buffered-io.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/fs/iomap/buffered-io.c b/fs/iomap/buffered-io.c index 063133ec77f49..5e5bffa384976 100644 --- a/fs/iomap/buffered-io.c +++ b/fs/iomap/buffered-io.c @@ -929,7 +929,7 @@ static int iomap_write_delalloc_scan(struct inode *inode, * the end of this data range, not the end of the folio. */ *punch_start_byte = min_t(loff_t, end_byte, - folio_next_index(folio) << PAGE_SHIFT); + folio_pos(folio) + folio_size(folio)); } /* move offset to start of next folio in range */ -- 2.40.1