2024-02-13 10:17:50

by Arnd Bergmann

[permalink] [raw]
Subject: [PATCH] quota: avoid printing an uninitialized blk number

From: Arnd Bergmann <[email protected]>

The error path of find_tree_dqentry() now prints a variable that is
never initialized:

fs/quota/quota_tree.c:674:8: error: variable 'blk' is uninitialized when used here [-Werror,-Wuninitialized]
blk);
^~~
include/linux/quotaops.h:34:41: note: expanded from macro 'quota_error'
__quota_error((sb), __func__, fmt , ## args)
^~~~

Move the calculation of the block number slightly up to make it
show a sensible number.

Fixes: 223bfb57631b ("quota: Detect loops in quota tree")
Signed-off-by: Arnd Bergmann <[email protected]>
---
fs/quota/quota_tree.c | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/fs/quota/quota_tree.c b/fs/quota/quota_tree.c
index afceef3ddfaa..05ae39f9b1ac 100644
--- a/fs/quota/quota_tree.c
+++ b/fs/quota/quota_tree.c
@@ -669,13 +669,13 @@ static loff_t find_tree_dqentry(struct qtree_mem_dqinfo *info,
if (!buf)
return -ENOMEM;
ret = read_blk(info, blks[depth], buf);
+ blk = le32_to_cpu(ref[get_index(info, dquot->dq_id, depth)]);
if (ret < 0) {
quota_error(dquot->dq_sb, "Can't read quota tree block %u",
blks[depth]);
goto out_buf;
}
ret = 0;
- blk = le32_to_cpu(ref[get_index(info, dquot->dq_id, depth)]);
if (!blk) /* No reference? */
goto out_buf;
ret = do_check_range(dquot->dq_sb, "block", blk, QT_TREEOFF,
--
2.39.2



2024-02-13 10:22:20

by Jan Kara

[permalink] [raw]
Subject: Re: [PATCH] quota: avoid printing an uninitialized blk number

On Tue 13-02-24 11:17:28, Arnd Bergmann wrote:
> From: Arnd Bergmann <[email protected]>
>
> The error path of find_tree_dqentry() now prints a variable that is
> never initialized:
>
> fs/quota/quota_tree.c:674:8: error: variable 'blk' is uninitialized when used here [-Werror,-Wuninitialized]
> blk);
> ^~~
> include/linux/quotaops.h:34:41: note: expanded from macro 'quota_error'
> __quota_error((sb), __func__, fmt , ## args)
> ^~~~
>
> Move the calculation of the block number slightly up to make it
> show a sensible number.
>
> Fixes: 223bfb57631b ("quota: Detect loops in quota tree")
> Signed-off-by: Arnd Bergmann <[email protected]>

Arnd, this should be fixed in my tree as of yesterday and I can see that
you've even based your patch on a fixed kernel :)

Honza

> ---
> fs/quota/quota_tree.c | 2 +-
> 1 file changed, 1 insertion(+), 1 deletion(-)
>
> diff --git a/fs/quota/quota_tree.c b/fs/quota/quota_tree.c
> index afceef3ddfaa..05ae39f9b1ac 100644
> --- a/fs/quota/quota_tree.c
> +++ b/fs/quota/quota_tree.c
> @@ -669,13 +669,13 @@ static loff_t find_tree_dqentry(struct qtree_mem_dqinfo *info,
> if (!buf)
> return -ENOMEM;
> ret = read_blk(info, blks[depth], buf);
> + blk = le32_to_cpu(ref[get_index(info, dquot->dq_id, depth)]);
> if (ret < 0) {
> quota_error(dquot->dq_sb, "Can't read quota tree block %u",
> blks[depth]);
> goto out_buf;
> }
> ret = 0;
> - blk = le32_to_cpu(ref[get_index(info, dquot->dq_id, depth)]);
> if (!blk) /* No reference? */
> goto out_buf;
> ret = do_check_range(dquot->dq_sb, "block", blk, QT_TREEOFF,
> --
> 2.39.2
>
--
Jan Kara <[email protected]>
SUSE Labs, CR

2024-02-13 10:27:39

by Arnd Bergmann

[permalink] [raw]
Subject: Re: [PATCH] quota: avoid printing an uninitialized blk number

On Tue, Feb 13, 2024, at 11:21, Jan Kara wrote:
> On Tue 13-02-24 11:17:28, Arnd Bergmann wrote:
>> From: Arnd Bergmann <[email protected]>
>>
>> The error path of find_tree_dqentry() now prints a variable that is
>> never initialized:
>>
>> fs/quota/quota_tree.c:674:8: error: variable 'blk' is uninitialized when used here [-Werror,-Wuninitialized]
>> blk);
>> ^~~
>> include/linux/quotaops.h:34:41: note: expanded from macro 'quota_error'
>> __quota_error((sb), __func__, fmt , ## args)
>> ^~~~
>>
>> Move the calculation of the block number slightly up to make it
>> show a sensible number.
>>
>> Fixes: 223bfb57631b ("quota: Detect loops in quota tree")
>> Signed-off-by: Arnd Bergmann <[email protected]>
>
> Arnd, this should be fixed in my tree as of yesterday and I can see that
> you've even based your patch on a fixed kernel :)

Right, sorry about that. I did a lot of fixes yesterday and
sent them out after making sure they did not cause any new
failures in an overnight test build, but did not check carefully
during rebasing.

Arnd