From: Ritesh Harjani (IBM) <ritesh.list@gmail.com>
To: Kemeng Shi <shikemeng@huaweicloud.com>,
tytso@mit.edu, adilger.kernel@dilger.ca, ojaswin@linux.ibm.com,
linux-ext4@vger.kernel.org, linux-kernel@vger.kernel.org
Cc: shikemeng@huaweicloud.com
Subject: Re: [PATCH 02/10] ext4: avoid potential data overflow in next_linear_group
Date: Fri, 21 Jul 2023 20:56:00 +0530 [thread overview]
Message-ID: <87fs5hl20n.fsf@doe.com> (raw)
In-Reply-To: <20230721171007.2065423-3-shikemeng@huaweicloud.com>
Kemeng Shi <shikemeng@huaweicloud.com> writes:
> ngroups is ext4_group_t (unsigned int) while next_linear_group treat it
> in int. If ngroups is bigger than max number described by int, it will
> be treat as a negative number. Then "return group + 1 >= ngroups ? 0 :
> group + 1;" may keep returning 0.
> Switch int to ext4_group_t in next_linear_group to fix the overflow.
>
Fixes: 196e402adf2e ("ext4: improve cr 0 / cr 1 group scanning")
With that feel free to add:
Reviewed-by: Ritesh Harjani (IBM) <ritesh.list@gmail.com>
> Signed-off-by: Kemeng Shi <shikemeng@huaweicloud.com>
> ---
> fs/ext4/mballoc.c | 5 +++--
> 1 file changed, 3 insertions(+), 2 deletions(-)
>
> diff --git a/fs/ext4/mballoc.c b/fs/ext4/mballoc.c
> index 90ffabac100b..33ee3991f62c 100644
> --- a/fs/ext4/mballoc.c
> +++ b/fs/ext4/mballoc.c
> @@ -1081,8 +1081,9 @@ static inline int should_optimize_scan(struct ext4_allocation_context *ac)
> * Return next linear group for allocation. If linear traversal should not be
> * performed, this function just returns the same group
> */
> -static int
> -next_linear_group(struct ext4_allocation_context *ac, int group, int ngroups)
> +static ext4_group_t
> +next_linear_group(struct ext4_allocation_context *ac, ext4_group_t group,
> + ext4_group_t ngroups)
> {
> if (!should_optimize_scan(ac))
> goto inc_and_return;
> --
> 2.30.0
next prev parent reply other threads:[~2023-07-21 15:26 UTC|newest]
Thread overview: 23+ messages / expand[flat|nested] mbox.gz Atom feed top
2023-07-21 17:09 [PATCH 00/10] A few fixes and cleanups to mballoc Kemeng Shi
2023-07-21 15:55 ` Ritesh Harjani
2023-07-25 2:09 ` Kemeng Shi
2023-07-21 17:09 ` [PATCH 01/10] ext4: correct grp validation in ext4_mb_good_group Kemeng Shi
2023-07-21 15:22 ` Ritesh Harjani
2023-07-21 17:09 ` [PATCH 02/10] ext4: avoid potential data overflow in next_linear_group Kemeng Shi
2023-07-21 15:26 ` Ritesh Harjani [this message]
2023-07-21 17:10 ` [PATCH 03/10] ext4: return found group directly in ext4_mb_choose_next_group_p2_aligned Kemeng Shi
2023-07-21 15:31 ` Ritesh Harjani
2023-07-21 17:10 ` [PATCH 04/10] ext4: use is_power_of_2 helper in ext4_mb_regular_allocator Kemeng Shi
2023-07-21 15:37 ` Ritesh Harjani
2023-07-21 17:10 ` [PATCH 05/10] ext4: remove unnecessary return for void function Kemeng Shi
2023-07-21 15:43 ` Ritesh Harjani
2023-07-21 17:10 ` [PATCH 06/10] ext4: replace the traditional ternary conditional operator with with max()/min() Kemeng Shi
2023-07-21 15:44 ` Ritesh Harjani
2023-07-21 17:10 ` [PATCH 07/10] ext4: remove unused ext4_{set}/{clear}_bit_atomic Kemeng Shi
2023-07-21 15:45 ` Ritesh Harjani
2023-07-21 17:10 ` [PATCH 08/10] ext4: return found group directly in ext4_mb_choose_next_group_goal_fast Kemeng Shi
2023-07-21 15:45 ` Ritesh Harjani
2023-07-21 17:10 ` [PATCH 09/10] ext4: return found group directly in ext4_mb_choose_next_group_best_avail Kemeng Shi
2023-07-21 15:48 ` Ritesh Harjani
2023-07-21 17:10 ` [PATCH 10/10] ext4: correct some stale comment of criteria Kemeng Shi
2023-07-21 15:49 ` Ritesh Harjani
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=87fs5hl20n.fsf@doe.com \
--to=ritesh.list@gmail.com \
--cc=adilger.kernel@dilger.ca \
--cc=linux-ext4@vger.kernel.org \
--cc=linux-kernel@vger.kernel.org \
--cc=ojaswin@linux.ibm.com \
--cc=shikemeng@huaweicloud.com \
--cc=tytso@mit.edu \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.