All of lore.kernel.org
 help / color / mirror / Atom feed
From: Su Yue <l@damenly.su>
To: Greg KH <greg@kroah.com>
Cc: Sasha Levin <sashal@kernel.org>,
	linux-kernel@vger.kernel.org, stable@vger.kernel.org,
	David Sterba <dsterba@suse.com>,
	clm@fb.com, josef@toxicpanda.com, linux-btrfs@vger.kernel.org
Subject: Re: [PATCH AUTOSEL 5.10 16/27] btrfs: tree-checker: check item_size for dev_item
Date: Fri, 18 Feb 2022 19:25:20 +0800	[thread overview]
Message-ID: <1r00qtxj.fsf@damenly.su> (raw)
In-Reply-To: <Yg92voqmS9jz/rI+@kroah.com>


On Fri 18 Feb 2022 at 11:36, Greg KH <greg@kroah.com> wrote:

> On Wed, Feb 09, 2022 at 01:40:52PM -0500, Sasha Levin wrote:
>> From: Su Yue <l@damenly.su>
>>
>> [ Upstream commit ea1d1ca4025ac6c075709f549f9aa036b5b6597d ]
>>
>> Check item size before accessing the device item to avoid out 
>> of bound
>> access, similar to inode_item check.
>>
>> Signed-off-by: Su Yue <l@damenly.su>
>> Reviewed-by: David Sterba <dsterba@suse.com>
>> Signed-off-by: David Sterba <dsterba@suse.com>
>> Signed-off-by: Sasha Levin <sashal@kernel.org>
>> ---
>>  fs/btrfs/tree-checker.c | 8 ++++++++
>>  1 file changed, 8 insertions(+)
>>
>> diff --git a/fs/btrfs/tree-checker.c b/fs/btrfs/tree-checker.c
>> index d4a3a56726aa8..4a5ee516845f7 100644
>> --- a/fs/btrfs/tree-checker.c
>> +++ b/fs/btrfs/tree-checker.c
>> @@ -947,6 +947,7 @@ static int check_dev_item(struct 
>> extent_buffer *leaf,
>>  			  struct btrfs_key *key, int slot)
>>  {
>>  	struct btrfs_dev_item *ditem;
>> +	const u32 item_size = btrfs_item_size(leaf, slot);
>>
>>  	if (key->objectid != BTRFS_DEV_ITEMS_OBJECTID) {
>>  		dev_item_err(leaf, slot,
>> @@ -954,6 +955,13 @@ static int check_dev_item(struct 
>> extent_buffer *leaf,
>>  			     key->objectid, 
>>  BTRFS_DEV_ITEMS_OBJECTID);
>>  		return -EUCLEAN;
>>  	}
>> +
>> +	if (unlikely(item_size != sizeof(*ditem))) {
>> +		dev_item_err(leaf, slot, "invalid item size: has 
>> %u expect %zu",
>> +			     item_size, sizeof(*ditem));
>> +		return -EUCLEAN;
>> +	}
>> +
>>  	ditem = btrfs_item_ptr(leaf, slot, struct btrfs_dev_item);
>>  	if (btrfs_device_id(leaf, ditem) != key->offset) {
>>  		dev_item_err(leaf, slot,
>> --
>> 2.34.1
>>
>
> This adds a build warning, showing that the backport is not 
> correct, so
> I'll go drop this :(
>
And the warning is
========================================================================
arch/x86/kernel/head_64.o: warning: objtool: .text+0x5: 
unreachable instruction
fs/btrfs/tree-checker.c: In function 
\342\200\230check_dev_item\342\200\231:
fs/btrfs/tree-checker.c:950:53: warning: passing argument 2 of 
\342\200\230btrfs_item_size\342\200\231 makes pointer from integer 
without a cast [-Wint-conversion]
  950 |         const u32 item_size = btrfs_item_size(leaf, slot);
      |                                                     ^~~~
      |                                                     |
      |                                                     int
In file included from fs/btrfs/tree-checker.c:21:
fs/btrfs/ctree.h:1474:48: note: expected \342\200\230const struct 
btrfs_item *\342\200\231 but argument is of type 
\342\200\230int\342\200\231
 1474 |                                    const type *s) 
 \
      |                                    ~~~~~~~~~~~~^
fs/btrfs/ctree.h:1833:1: note: in expansion of macro 
\342\200\230BTRFS_SETGET_FUNCS\342\200\231
 1833 | BTRFS_SETGET_FUNCS(item_size, struct btrfs_item, size, 
 32);
      | ^~~~~~~~~~~~~~~~~~
========================================================================

The upstream patchset[1] merged in 5.17-rc1, changed second 
parameter
of btrfs_item_size() from btrfs_item * to int directly.
So yes, the backport is wrong.

I'm not familiar with stable backport progress. Should I file a 
patch
using btrfs_item *? Or just drop it?

The patch is related to  0c982944af27d131d3b74242f3528169f66950ad 
but
I wonder why the 0c98294 is not selected automatically.

Thanks.

[1]: 
https://patchwork.kernel.org/project/linux-btrfs/cover/cover.1634842475.git.josef@toxicpanda.com/
--
Su
> thanks,
>
> greg k-h

  reply	other threads:[~2022-02-18 12:02 UTC|newest]

Thread overview: 34+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2022-02-09 18:40 [PATCH AUTOSEL 5.10 01/27] platform/x86: touchscreen_dmi: Add info for the RWC NANOTE P8 AY07J 2-in-1 Sasha Levin
2022-02-09 18:40 ` [PATCH AUTOSEL 5.10 02/27] platform/x86: ISST: Fix possible circular locking dependency detected Sasha Levin
2022-02-09 18:40 ` [PATCH AUTOSEL 5.10 03/27] selftests: rtc: Increase test timeout so that all tests run Sasha Levin
2022-02-09 18:40 ` [PATCH AUTOSEL 5.10 04/27] kselftest: signal all child processes Sasha Levin
2022-02-09 18:40 ` [PATCH AUTOSEL 5.10 05/27] net: ieee802154: at86rf230: Stop leaking skb's Sasha Levin
2022-02-09 18:40 ` [PATCH AUTOSEL 5.10 06/27] selftests/zram: Skip max_comp_streams interface on newer kernel Sasha Levin
2022-02-09 18:40 ` [PATCH AUTOSEL 5.10 07/27] selftests/zram01.sh: Fix compression ratio calculation Sasha Levin
2022-02-09 18:40 ` [PATCH AUTOSEL 5.10 08/27] selftests/zram: Adapt the situation that /dev/zram0 is being used Sasha Levin
2022-02-09 18:40 ` [PATCH AUTOSEL 5.10 09/27] selftests: openat2: Print also errno in failure messages Sasha Levin
2022-02-09 18:40 ` [PATCH AUTOSEL 5.10 10/27] selftests: openat2: Add missing dependency in Makefile Sasha Levin
2022-02-09 18:40 ` [PATCH AUTOSEL 5.10 11/27] selftests: openat2: Skip testcases that fail with EOPNOTSUPP Sasha Levin
2022-02-09 18:40 ` [PATCH AUTOSEL 5.10 12/27] selftests: skip mincore.check_file_mmap when fs lacks needed support Sasha Levin
2022-02-09 18:40 ` [PATCH AUTOSEL 5.10 13/27] ax25: improve the incomplete fix to avoid UAF and NPD bugs Sasha Levin
2022-02-09 18:40 ` [PATCH AUTOSEL 5.10 14/27] vfs: make freeze_super abort when sync_filesystem returns error Sasha Levin
2022-02-09 18:40 ` [PATCH AUTOSEL 5.10 15/27] quota: make dquot_quota_sync return errors from ->sync_fs Sasha Levin
2022-02-09 18:40 ` [PATCH AUTOSEL 5.10 16/27] btrfs: tree-checker: check item_size for dev_item Sasha Levin
2022-02-18 10:36   ` Greg KH
2022-02-18 11:25     ` Su Yue [this message]
2022-02-18 13:04       ` Greg KH
2022-02-23 17:20       ` David Sterba
2022-02-09 18:40 ` [PATCH AUTOSEL 5.10 17/27] iommu: Fix potential use-after-free during probe Sasha Levin
2022-02-09 18:40   ` Sasha Levin
2022-02-09 18:40 ` [PATCH AUTOSEL 5.10 18/27] scsi: pm8001: Fix use-after-free for aborted TMF sas_task Sasha Levin
2022-02-09 18:40 ` [PATCH AUTOSEL 5.10 19/27] scsi: pm8001: Fix use-after-free for aborted SSP/STP sas_task Sasha Levin
2022-02-09 18:40 ` [PATCH AUTOSEL 5.10 20/27] nvme: fix a possible use-after-free in controller reset during load Sasha Levin
2022-02-09 18:40 ` [PATCH AUTOSEL 5.10 21/27] nvme-tcp: fix possible use-after-free in transport error_recovery work Sasha Levin
2022-02-09 18:40 ` [PATCH AUTOSEL 5.10 22/27] nvme-rdma: " Sasha Levin
2022-02-09 18:40 ` [PATCH AUTOSEL 5.10 23/27] drm/amdgpu: fix logic inversion in check Sasha Levin
2022-02-09 18:40   ` Sasha Levin
2022-02-09 18:40   ` Sasha Levin
2022-02-09 18:41 ` [PATCH AUTOSEL 5.10 24/27] x86/Xen: streamline (and fix) PV CPU enumeration Sasha Levin
2022-02-09 18:41 ` [PATCH AUTOSEL 5.10 25/27] Revert "module, async: async_synchronize_full() on module init iff async is used" Sasha Levin
2022-02-09 18:41 ` [PATCH AUTOSEL 5.10 26/27] gcc-plugins/stackleak: Use noinstr in favor of notrace Sasha Levin
2022-02-09 18:41 ` [PATCH AUTOSEL 5.10 27/27] random: wake up /dev/random writers after zap Sasha Levin

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=1r00qtxj.fsf@damenly.su \
    --to=l@damenly.su \
    --cc=clm@fb.com \
    --cc=dsterba@suse.com \
    --cc=greg@kroah.com \
    --cc=josef@toxicpanda.com \
    --cc=linux-btrfs@vger.kernel.org \
    --cc=linux-kernel@vger.kernel.org \
    --cc=sashal@kernel.org \
    --cc=stable@vger.kernel.org \
    /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.