Re: [PATCH] firewire: fix panic in handle_at_packet

From: Jarod Wilson
Date: Sun Mar 16 2008 - 23:34:36 EST


On Saturday 15 March 2008 07:56:41 pm Stefan Richter wrote:
> This fixes a use-after-free bug in the handling of split transactions.
> The AT DMA handler of the request was occasionally executed after the
> AR DMA handler of the response. The AT DMA handler then accessed an
> already freed packet.
>
> Reported by Johannes Berg <johannes@xxxxxxxxxxxxxxxx>.
> http://bugzilla.kernel.org/show_bug.cgi?id=9617
>
> Signed-off-by: Stefan Richter <stefanr@xxxxxxxxxxxxxxxxx>

Panics hooking up to an x86 mac mini in target disk mode are gone on my end
with this patch added, and the fix makes sense -- assuming I've got it right,
in my head, of course. ;)

As I understand it, we'll now simply bail in handle_at_packet when we see
packet == NULL, rather than trying to play with already freed memory, and
cancelling an AT packet here should always be perfectly safe, because we're
already onto the AR side of this transaction, and in most cases, the AT
handler already fired anyway.

Signed-off-by: Jarod Wilson <jwilson@xxxxxxxxxx>

--
Jarod Wilson
jwilson@xxxxxxxxxx
--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/