[<prev] [next>] [<thread-prev] [day] [month] [year] [list]
Message-ID: <c017238b0af2a81b5636bc89f195e809ab9a9d72.camel@proton.me>
Date: Tue, 29 Oct 2024 09:19:07 +0000
From: Edmund Raile <edmund.raile@...ton.me>
To: Takashi Sakamoto <o-takashi@...amocchi.jp>, linux1394-devel@...ts.sourceforge.net
Cc: linux-kernel@...r.kernel.org, stable@...r.kernel.org, edmund.raile@...ton.me
Subject: Re: [PATCH] firewire: core: fix invalid port index for parent device
> In a commit 24b7f8e5cd65 ("firewire: core: use helper functions for
> self
> ID sequence"), the enumeration over self ID sequence was refactored
> with
> some helper functions with KUnit tests. These helper functions are
> guaranteed to work expectedly by the KUnit tests, however their
> application
> includes a mistake to assign invalid value to the index of port
> connected
> to parent device.
>
> This bug affects the case that any extra node devices which has three
> or
> more ports are connected to 1394 OHCI controller. In the case, the
> path
> to update the tree cache could hits WARN_ON(), and gets general
> protection
> fault due to the access to invalid address computed by the invalid
> value.
>
> This commit fixes the bug to assign correct port index.
>
> Cc: stable@...r.kernel.org
> Reported-by: Edmund Raile <edmund.raile@...ton.me>
> Closes:
> https://lore.kernel.org/lkml/8a9902a4ece9329af1e1e42f5fea76861f0bf0e8.camel@proton.me/
> Fixes: 24b7f8e5cd65 ("firewire: core: use helper functions for self
> ID sequence")
> Signed-off-by: Takashi Sakamoto <o-takashi@...amocchi.jp>
> ---
> drivers/firewire/core-topology.c | 2 +-
> 1 file changed, 1 insertion(+), 1 deletion(-)
>
> diff --git a/drivers/firewire/core-topology.c
> b/drivers/firewire/core-topology.c
> index 6adadb11962e..892b94cfd626 100644
> --- a/drivers/firewire/core-topology.c
> +++ b/drivers/firewire/core-topology.c
> @@ -204,7 +204,7 @@ static struct fw_node *build_tree(struct fw_card
> *card, const u32 *sid, int self
> // the node->ports array where the parent node should be. Later,
> // when we handle the parent node, we fix up the reference.
> ++parent_count;
> - node->color = i;
> + node->color = port_index;
> break;
>
> case PHY_PACKET_SELF_ID_PORT_STATUS_CHILD:
> --
> 2.45.2
Your patch is identical to my original proposals except for the line
numbers.
I've been using it since, no issues.
Thank you!
Tested-by: Edmund Raile <edmund.raile@...ton.me>
Powered by blists - more mailing lists