freebsd-src/cddl/usr.sbin/zfsd
Alan Somers 0b294a386d Fix zfsd with the device_removal pool feature.
Previously zfsd would crash in the presence of a pool with a
top-level-vdev that had previously been removed.  The crash happened
because the configuration nvlist of such a TLV contains an empty
ZPOOL_CONFIG_CHILDREN array, which led to a pop_front from an empty
list, which has undefined behavior.

The crash only happened in stable/14 and later, probably do to
differences in libcxx, but the change should be MFCed anyway.

PR:		273663
Reported by:	Marek Zarychta <zarychtam@plan-b.pwste.edu.pl>
MFC after:	1 week
Sponsored by:	Axcient
Reviewed by:	mav
Differential Revision: https://reviews.freebsd.org/D41818
2023-09-12 08:46:12 -06:00
..
tests Fix zfsd with the device_removal pool feature. 2023-09-12 08:46:12 -06:00
callout.cc Remove $FreeBSD$: two-line .h pattern 2023-08-16 11:54:16 -06:00
callout.h Remove $FreeBSD$: two-line .h pattern 2023-08-16 11:54:16 -06:00
case_file.cc Remove $FreeBSD$: one-line .c pattern 2023-08-16 11:54:42 -06:00
case_file.h Remove $FreeBSD$: two-line .h pattern 2023-08-16 11:54:16 -06:00
Makefile Remove $FreeBSD$: one-line sh pattern 2023-08-16 11:55:03 -06:00
Makefile.common Remove $FreeBSD$: one-line sh pattern 2023-08-16 11:55:03 -06:00
Makefile.depend Remove $FreeBSD$: one-line sh pattern 2023-08-16 11:55:03 -06:00
vdev.cc Remove $FreeBSD$: one-line .c pattern 2023-08-16 11:54:42 -06:00
vdev.h Remove $FreeBSD$: two-line .h pattern 2023-08-16 11:54:16 -06:00
vdev_iterator.cc Fix zfsd with the device_removal pool feature. 2023-09-12 08:46:12 -06:00
vdev_iterator.h Remove $FreeBSD$: two-line .h pattern 2023-08-16 11:54:16 -06:00
zfsd.8 Remove $FreeBSD$: two-line nroff pattern 2023-08-16 11:55:10 -06:00
zfsd.cc Remove $FreeBSD$: one-line .c pattern 2023-08-16 11:54:42 -06:00
zfsd.h Remove $FreeBSD$: two-line .h pattern 2023-08-16 11:54:16 -06:00
zfsd_event.cc Remove $FreeBSD$: one-line .c pattern 2023-08-16 11:54:42 -06:00
zfsd_event.h Remove $FreeBSD$: two-line .h pattern 2023-08-16 11:54:16 -06:00
zfsd_exception.cc Remove $FreeBSD$: one-line .c pattern 2023-08-16 11:54:42 -06:00
zfsd_exception.h Remove $FreeBSD$: two-line .h pattern 2023-08-16 11:54:16 -06:00
zfsd_main.cc Remove $FreeBSD$: one-line .c pattern 2023-08-16 11:54:42 -06:00
zpool_list.cc Remove $FreeBSD$: two-line .h pattern 2023-08-16 11:54:16 -06:00
zpool_list.h Remove $FreeBSD$: two-line .h pattern 2023-08-16 11:54:16 -06:00