From nobody Fri Mar 14 17:52:27 2025 X-Original-To: dev-commits-src-branches@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 4ZDsQM2WrSz5qWlL; Fri, 14 Mar 2025 17:52:27 +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 4ZDsQM1TTyz3DY0; Fri, 14 Mar 2025 17:52:27 +0000 (UTC) (envelope-from git@FreeBSD.org) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1741974747; 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=VVRLDyKPj22VsM5nw6u1Qwcvexiy2vSVtIGmo6NKMXY=; b=T0qYcgwrpE+cjwb7Nc973O9tAhHygbMCSbIz1Hw2O834idBxRmyAoore3nP72IeovSBgkY bu6VMprbv33B8KC2wQgFb0J4xD9o5VNphzVzZ1Jt82pXLRMN5gbuSDhgDLQuOrasnatmTw ni1ytqZhSGP3XCgegzis5H4TfGlJGWtZeBwO0VyeJhTWNM3tDLbm/SSkcEr54sqqKz/Jn5 1c41wS/xIRjtZYhFiecncl7s8zivNzilIKeGBQhR8FhIjjXyvXnJn/SU0OZk0POkua9cbX Hctg6IsGYc7u6HK0zdiVZJkYL5idHL+P2tjoIj2UjgxMTJFJD9zSuMg949ZpbQ== ARC-Seal: i=1; s=dkim; d=freebsd.org; t=1741974747; a=rsa-sha256; cv=none; b=oLPNrWhh+1TrN9HOpY+6spvu1Y92WOBVDMAqxT1rmgq3pzeQe5SdmnYSUTOc76iZuvWdoq lSmUs5s4TvSMbUy5JtZYk5jJ5MUgeyLBPlosyxkPXDA3mk6BlSit1V6+0nvesJXM94K8Ri j3Nt3INJqh78Q0qpetBdH0BtG0DY51ZjrhQG72P6SU9kapliWlVz9k11IFOio82M6Iw2iX l0VpmW36TDh/3JA91w5+Ty7Lh+SUg3IaziLMWco7G6GF6DD2GhIMMOAvNb85XOl6J4K/EV JNXfqKev/jknFjGHkb4FtYTioa2YWKh1wGFtIsKIYGrfG4mUNUckTA8WSrJJIg== 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=1741974747; 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=VVRLDyKPj22VsM5nw6u1Qwcvexiy2vSVtIGmo6NKMXY=; b=KDyc0KftI0cGQSGBphWzlBZfvhZ2KzqIfnI1Yb1+WpJ6/Gqrnv0BaRxzm6g9DYDailNMnq dlmafD5HeFTdGp7HTt1DdYzSYxnWP05Kl5NEzv8j2nRwlP71k7NseANV3mHhfGrEZKpWs3 u36vr61V+BNj7QffixhjO1gD5ez5rdwUfy+MTtv4wpRUYZrP8R3aVeZ1yFv1BY9NAzsWo2 cVPN4Eb2dpFTt6B7Q2yct8vMfea5z8ozyQpKlZNdkvwHK7pPOkzpv/jQjE0f+//G7j04gX 2k0yAJJiRnY/Hb4e5Y902pe5NrcW3p/Mmt0SFtB3Po5xNjWgRzJZ7Zal29Smjg== 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 4ZDsQM11ngzvNb; Fri, 14 Mar 2025 17:52:27 +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 52EHqRmb061607; Fri, 14 Mar 2025 17:52:27 GMT (envelope-from git@gitrepo.freebsd.org) Received: (from git@localhost) by gitrepo.freebsd.org (8.18.1/8.18.1/Submit) id 52EHqRma061604; Fri, 14 Mar 2025 17:52:27 GMT (envelope-from git) Date: Fri, 14 Mar 2025 17:52:27 GMT Message-Id: <202503141752.52EHqRma061604@gitrepo.freebsd.org> To: src-committers@FreeBSD.org, dev-commits-src-all@FreeBSD.org, dev-commits-src-branches@FreeBSD.org From: Warner Losh Subject: git: b9296d4d85bb - stable/14 - g_dev_orphan(): Return early if the device is already gone List-Id: Commits to the stable branches of the FreeBSD src repository List-Archive: https://lists.freebsd.org/archives/dev-commits-src-branches List-Help: List-Post: List-Subscribe: List-Unsubscribe: X-BeenThere: dev-commits-src-branches@freebsd.org Sender: owner-dev-commits-src-branches@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/stable/14 X-Git-Reftype: branch X-Git-Commit: b9296d4d85bbc4f84c21615e760c5e12d1c81406 Auto-Submitted: auto-generated The branch stable/14 has been updated by imp: URL: https://cgit.FreeBSD.org/src/commit/?id=b9296d4d85bbc4f84c21615e760c5e12d1c81406 commit b9296d4d85bbc4f84c21615e760c5e12d1c81406 Author: Fabian Keil AuthorDate: 2025-03-13 23:13:46 +0000 Commit: Warner Losh CommitDate: 2025-03-14 17:51:03 +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 (cherry picked from commit f7856fe81df2df3c4355e674d34a4c15a095a33c) --- 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 0b5cfdf77149..8d71cb584f80 100644 --- a/sys/geom/geom_dev.c +++ b/sys/geom/geom_dev.c @@ -854,6 +854,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;