From nobody Thu Mar 13 23:21:17 2025 X-Original-To: dev-commits-src-all@mlmmj.nyi.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mlmmj.nyi.freebsd.org (Postfix) with ESMTP id 4ZDNmG2zYVz5rLw7; Thu, 13 Mar 2025 23:21:18 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from mxrelay.nyi.freebsd.org (mxrelay.nyi.freebsd.org [IPv6:2610:1c1:1:606c::19:3]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (4096 bits) server-digest SHA256 client-signature RSA-PSS (4096 bits) client-digest SHA256) (Client CN "mxrelay.nyi.freebsd.org", Issuer "R10" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 4ZDNmG0nLPz3MYx; Thu, 13 Mar 2025 23:21:18 +0000 (UTC) (envelope-from git@FreeBSD.org) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1741908078; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=Au0sAqWexdpy3BUVB8cIXIobEgNTU4d5onWj8HBSZno=; b=Wx0XZpU8kaYxM27f+XJz6QQVBRjMjPwATIFJOY0b/gDtQgghVuZ8TUxurBrp2Olej45joT tCApXzq8/ZxttsdCt9q6X4jdjx/6PDT6ppmuTqO/1rXj7TL2RFL/W8asApz3g6JxjupQTP i0kL8pDf/W0/Y+17fVECaw3wQ/QByI1vI38omPnt8sKICagK+R4rYUcxo8G9AntPPM0BAb GwAzriIDUAjd0EKuCes1es5EXe+qU4Xvn/xHLQZK5ftsqMvVrht7MlmpBQx+B8Et3nxrA+ Pk2+y+xW887UAkg4kxB2ZVaTQhXZma1XOG7sUxyAqlIPWQdrAkv30yV8yQqNDw== ARC-Seal: i=1; s=dkim; d=freebsd.org; t=1741908078; a=rsa-sha256; cv=none; b=jvvs0S8rSSFq8sGv3Djl1VHlUMGFpDQoN7dOY0Tjtnw7DZ82FZxeVrpgvg5zFbYh/r0WdH ozvRAczfXUraOsgSpFEtQ1Q2NTm2fcqaNUcJY/FpxbJW1ObSZgfJtbgTwIrn7d43c+AxX+ //jwSonkhx9j0GdG/tNoWUC/XPqgPGWVX3oBoHHwoGFhyAdzjVcZE9Z6IZrXdhJUHfwUbD gagdw4KyMDCrDQVHjTJitZgrbKzOXl/JSlyL3yNtbvU1VZBqGV1KlJTgmuxsb/HsZ3eEN5 Kaj8LX2u61Ywawedb2Up0xMNDhIKSNJN+42ieP+Lmb2DwmdV17HOgYS9NGuFEQ== ARC-Authentication-Results: i=1; mx1.freebsd.org; none ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1741908078; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=Au0sAqWexdpy3BUVB8cIXIobEgNTU4d5onWj8HBSZno=; b=tOpA43WLQ3afdRyA96Roe3RcTefngu7XosDKjZFt2S6UkjuQYGKEcKtFD1gMdxHeAT+GxO W+RvKXE1xhoQpX59aafeOzggE+kuunHSd3jZi/b1xNbg1TNIqa268txB2G9HKKIze1Y5X8 rBvC84NpxEe1pbuEuoEFxxcI5DArdBLjeNhJBtFihqcp429ZA+nglUR6ntMTPakNRUhKj9 p/cEODVa8Ip6yoHhkkEuaWtq7xjAIRZCjHCoT6JpNNm/iSfP5+Nj9qd9CNqGJvgE5Kbidh xZ053NBt3pDiiQ/Law3WUIpWk03K/OJtTA6VCbGvnKOGGJ6ut/Uzc581DKqZ5A== Received: from gitrepo.freebsd.org (gitrepo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:5]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (4096 bits) server-digest SHA256) (Client did not present a certificate) by mxrelay.nyi.freebsd.org (Postfix) with ESMTPS id 4ZDNmG0JTGz413; Thu, 13 Mar 2025 23:21:18 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from gitrepo.freebsd.org ([127.0.1.44]) by gitrepo.freebsd.org (8.18.1/8.18.1) with ESMTP id 52DNLHPQ070438; Thu, 13 Mar 2025 23:21:17 GMT (envelope-from git@gitrepo.freebsd.org) Received: (from git@localhost) by gitrepo.freebsd.org (8.18.1/8.18.1/Submit) id 52DNLHVZ070435; Thu, 13 Mar 2025 23:21:17 GMT (envelope-from git) Date: Thu, 13 Mar 2025 23:21:17 GMT Message-Id: <202503132321.52DNLHVZ070435@gitrepo.freebsd.org> To: src-committers@FreeBSD.org, dev-commits-src-all@FreeBSD.org, dev-commits-src-main@FreeBSD.org From: Warner Losh Subject: git: f7856fe81df2 - main - g_dev_orphan(): Return early if the device is already gone List-Id: Commit messages for all branches of the src repository List-Archive: https://lists.freebsd.org/archives/dev-commits-src-all List-Help: List-Post: List-Subscribe: List-Unsubscribe: X-BeenThere: dev-commits-src-all@freebsd.org Sender: owner-dev-commits-src-all@FreeBSD.org MIME-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: 8bit X-Git-Committer: imp X-Git-Repository: src X-Git-Refname: refs/heads/main X-Git-Reftype: branch X-Git-Commit: f7856fe81df2df3c4355e674d34a4c15a095a33c Auto-Submitted: auto-generated The branch main has been updated by imp: URL: https://cgit.FreeBSD.org/src/commit/?id=f7856fe81df2df3c4355e674d34a4c15a095a33c commit f7856fe81df2df3c4355e674d34a4c15a095a33c Author: Fabian Keil AuthorDate: 2025-03-13 23:13:46 +0000 Commit: Warner Losh CommitDate: 2025-03-13 23:20:00 +0000 g_dev_orphan(): Return early if the device is already gone The following panic was the result of running "cdcontrol eject" after using the physical ejection key on the device before the tray was actually ejected. So we have hardware racing software. The device was loaded with a DVD. Resulted in a NULL pointer dereference g_dev_orphan() at g_dev_orphan+0x2e/frame 0xfffffe01eba0a9f0 g_resize_provider_event() at g_resize_provider_event+0x71/frame 0xfffffe01eba0aa20 g_run_events() at g_run_events+0x20e/frame 0xfffffe01eba0aa70 fork_exit() at fork_exit+0x85/frame 0xfffffe01eba0aab0 fork_trampoline() at fork_trampoline+0xe/frame 0xfffffe01eba0aab0 Avoid this possibility and return early of dev is NULL already. PR: 215856 Reviewed by: imp (I've triggered this once or twice over the years too) Sponsored by: Netflix --- sys/geom/geom_dev.c | 3 +++ 1 file changed, 3 insertions(+) diff --git a/sys/geom/geom_dev.c b/sys/geom/geom_dev.c index 8607f476db20..d340beb79bd6 100644 --- a/sys/geom/geom_dev.c +++ b/sys/geom/geom_dev.c @@ -853,6 +853,9 @@ g_dev_orphan(struct g_consumer *cp) dev = sc->sc_dev; g_trace(G_T_TOPOLOGY, "g_dev_orphan(%p(%s))", cp, cp->geom->name); + if (dev == NULL) + return; + /* Reset any dump-area set on this device */ if (dev->si_flags & SI_DUMPDEV) { struct diocskerneldump_arg kda;