opnsense-src/sys/geom
Fabian Keil b9296d4d85 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)
2025-03-14 11:51:03 -06:00
..
bde sys: Remove $FreeBSD$: two-line .h pattern 2023-08-16 11:54:11 -06:00
cache sys: Remove $FreeBSD$: one-line .c pattern 2023-08-16 11:54:36 -06:00
concat sys: Remove $FreeBSD$: one-line .c pattern 2023-08-16 11:54:36 -06:00
eli pkcs5v2: Add pkcs5v2_genkey_raw function 2024-09-29 08:24:52 -07:00
gate ggate: Avoid dropping the GEOM topology lock in dumpconf 2024-10-18 12:27:13 +00:00
journal gjournal(8): Fix a typo in a sysctl description 2024-01-25 07:43:16 +01:00
label sys: Remove $FreeBSD$: one-line .c pattern 2023-08-16 11:54:36 -06:00
linux_lvm geom_linux_lvm: Avoid removing from vg_list before inserting 2023-10-24 09:17:59 -04:00
mirror g_eli: update comment for bool return type 2024-11-16 09:59:52 -05:00
mountver geom: sort includes for some files 2023-12-08 18:02:44 -04:00
multipath sys: Remove $FreeBSD$: one-line .c pattern 2023-08-16 11:54:36 -06:00
nop sys: Remove $FreeBSD$: one-line .c pattern 2023-08-16 11:54:36 -06:00
part geom: Allow BSD type '!0' partitions 2024-12-21 17:04:07 +00:00
raid graid: MFC: unbreak Promise RAID1 with 4+ providers 2024-02-16 12:18:43 +07:00
raid3 graid3: Fix teardown in g_raid3_try_destroy() 2024-04-23 09:51:33 -04:00
shsec sys: Remove $FreeBSD$: one-line .c pattern 2023-08-16 11:54:36 -06:00
stripe geom_stripe: Cascade cantrim just like we do for gmirror 2024-05-20 13:23:40 -06:00
union spdx: The BSD-2-Clause-FreeBSD identifier is obsolete, drop -FreeBSD 2023-05-12 10:44:03 -06:00
uzip sys: Remove $FreeBSD$: one-line .c pattern 2023-08-16 11:54:36 -06:00
vinum gvinum: Emit deprecation notice upon drive tasting 2025-02-04 08:35:32 -05:00
virstor sys: Remove $FreeBSD$: one-line .c pattern 2023-08-16 11:54:36 -06:00
zero sys: Remove $FreeBSD$: one-line .c pattern 2023-08-16 11:54:36 -06:00
geom.h sys: Remove $FreeBSD$: two-line .h pattern 2023-08-16 11:54:11 -06:00
geom_bsd_enc.c sys: Remove $FreeBSD$: one-line .c pattern 2023-08-16 11:54:36 -06:00
geom_ccd.c sys: Remove $FreeBSD$: one-line .c pattern 2023-08-16 11:54:36 -06:00
geom_ctl.c geom: Report copyout() errors in g_ctl_ioctl_ctl() 2024-01-01 19:29:57 -05:00
geom_ctl.h sys: Remove $FreeBSD$: two-line .h pattern 2023-08-16 11:54:11 -06:00
geom_dbg.h sys: Remove $FreeBSD$: two-line .h pattern 2023-08-16 11:54:11 -06:00
geom_dev.c g_dev_orphan(): Return early if the device is already gone 2025-03-14 11:51:03 -06:00
geom_disk.c sys: Remove $FreeBSD$: one-line .c pattern 2023-08-16 11:54:36 -06:00
geom_disk.h sys: Remove $FreeBSD$: two-line .h pattern 2023-08-16 11:54:11 -06:00
geom_dump.c sys: Remove $FreeBSD$: one-line .c pattern 2023-08-16 11:54:36 -06:00
geom_event.c sys: Remove $FreeBSD$: one-line .c pattern 2023-08-16 11:54:36 -06:00
geom_flashmap.c geom_flashmap: Rename the kernel module 2024-11-05 00:55:43 +00:00
geom_flashmap.h sys: Remove $FreeBSD$: two-line .h pattern 2023-08-16 11:54:11 -06:00
geom_int.h sys: Remove $FreeBSD$: two-line .h pattern 2023-08-16 11:54:11 -06:00
geom_io.c Fix geom build with clang 17 and KTR enabled 2023-09-20 09:03:55 +02:00
geom_kern.c sys: Remove $FreeBSD$: one-line .c pattern 2023-08-16 11:54:36 -06:00
geom_slice.c sys: Remove $FreeBSD$: one-line .c pattern 2023-08-16 11:54:36 -06:00
geom_slice.h sys: Remove $FreeBSD$: two-line .h pattern 2023-08-16 11:54:11 -06:00
geom_subr.c geom(4): Fix a typo in a source code comment 2024-04-24 12:19:28 +02:00
geom_vfs.c sys: Remove $FreeBSD$: one-line .c pattern 2023-08-16 11:54:36 -06:00
geom_vfs.h sys: Remove $FreeBSD$: two-line .h pattern 2023-08-16 11:54:11 -06:00
notes sys: Remove $FreeBSD$: one-line bare tag 2023-08-16 11:55:17 -06:00