From: Takashi Sakamoto <o-takashi@sakamocchi.jp>
To: syzbot <syzbot@kernel.org>
Cc: syzkaller-bugs@googlegroups.com,
Aleksandr Nogikh <nogikh@google.com>,
linux1394-devel@lists.sourceforge.net,
linux-kernel@vger.kernel.org, syzbot@lists.linux.dev
Subject: Re: [PATCH] firewire: ohci: fix NULL pointer dereference in ar_context_release
Date: Sat, 8 Aug 2026 08:38:33 +0900 [thread overview]
Message-ID: <20260807233833.GA479199@sakamocchi.jp> (raw)
In-Reply-To: <90c5db71-dd1f-4d46-b9d3-2f1046cbd5ea@mail.kernel.org>
Hi,
On Fri, Aug 07, 2026 at 02:25:26PM +0000, syzbot wrote:
> From: Aleksandr Nogikh <nogikh@google.com>
>
> 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: syzbot+d30aad27833a559defab@syzkaller.appspotmail.com
> 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 <nogikh@google.com>
Applied to for-linus branch.
Thanks
Takashi Sakamoto
prev parent reply other threads:[~2026-08-07 23:38 UTC|newest]
Thread overview: 2+ messages / expand[flat|nested] mbox.gz Atom feed top
2026-08-07 14:25 [PATCH] firewire: ohci: fix NULL pointer dereference in ar_context_release syzbot
2026-08-07 23:38 ` Takashi Sakamoto [this message]
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=20260807233833.GA479199@sakamocchi.jp \
--to=o-takashi@sakamocchi.jp \
--cc=linux-kernel@vger.kernel.org \
--cc=linux1394-devel@lists.sourceforge.net \
--cc=nogikh@google.com \
--cc=syzbot@kernel.org \
--cc=syzbot@lists.linux.dev \
--cc=syzkaller-bugs@googlegroups.com \
/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.