Re: [PATCH] firewire: ohci: fix NULL pointer dereference in ar_context_release

Takashi Sakamoto <[email protected]>
Newsgroups gmane.linux.kernel,gmane.linux.kernel.firewire.devel
Message-ID <[email protected]>
Hi,

On Fri, Aug 07, 2026 at 02:25:26PM +0000, syzbot wrote:
> From: Aleksandr Nogikh <[email protected]>
> 
> During the error handling path of the driver's probe function, a NULL
> pointer dereference can occur in ar_context_release().
> 
> When pci_probe() fails early (e.g., if pcim_enable_device() or MMIO mapping
> fails), the devres cleanup mechanism invokes release_ohci(). This function
> unconditionally calls ar_context_release() to clean up the asynchronous
> receive contexts. However, if ar_context_init() was not yet called,
> ctx->ohci remains NULL (as the fw_ohci structure is zero-initialized by
> devres_alloc()).
> 
> ar_context_release() immediately dereferences ctx->ohci to get the dev
> pointer before checking if the context was actually initialized, leading to
> a crash:
> 
> Oops: general protection fault, probably for non-canonical address
> 0xdffffc0000000001: 0000 [#1] SMP KASAN NOPTI
> KASAN: null-ptr-deref in range [0x0000000000000008-0x000000000000000f]
> RIP: 0010:ar_context_release+0x3f/0x380 drivers/firewire/ohci.c:543
> Call Trace:
>  release_ohci+0x3f/0x60 drivers/firewire/ohci.c:3567
>  release_nodes drivers/base/devres.c:546 [inline]
>  devres_release_all+0x1a8/0x260 drivers/base/devres.c:576
>  device_unbind_cleanup drivers/base/dd.c:597 [inline]
>  really_probe+0x451/0xae0 drivers/base/dd.c:772
> 
> To fix this, move the assignment of the dev pointer after the !ctx->buffer
> check. If ctx->buffer is NULL, it indicates that the context was never
> successfully initialized and there is nothing to release, safely avoiding
> the dereference of the uninitialized ctx->ohci pointer.
> 
> Fixes: 5716e58aecdd ("firewire: ohci: release buffer for AR req/resp contexts when managed resource is released")
> Assisted-by: Gemini:gemini-3.5-flash Gemini:gemini-3.1-pro-preview syzbot
> Reported-by: [email protected]
> Closes: https://syzkaller.appspot.com/bug?extid=d30aad27833a559defab
> Link: https://syzkaller.appspot.com/ai_job?id=10a18617-7893-42dd-bf1c-cd49e19e95d9
> Signed-off-by: Aleksandr Nogikh <[email protected]>

Applied to for-linus branch.


Thanks

Takashi Sakamoto
lmpx.com only provides a reader for public news (NNTP) servers. It is not affiliated with the servers or forums shown here and is not responsible for the content of articles, which is written by their respective authors.