bsdlabel: limit to 8 partitions

bsdlabel is intended to support up to 20 partitions, but the disklabel
struct has a d_partitions array with only BSD_NPARTS_MIN (8) entries.
Previously, an attempt to operate on a bsdlabel with more than eight
partitions resulted in a buffer overflow.

As a stopgap limit bsdlabel to 8 partitions until this is fixed
properly.

PR:		276517
This commit is contained in:
Ed Maste 2024-01-22 21:05:58 -05:00
parent e125371fb6
commit 3f4f82c0d7

View File

@ -50,7 +50,7 @@
#include <sys/disk.h>
#define DKTYPENAMES
#define FSTYPENAMES
#define MAXPARTITIONS 20
#define MAXPARTITIONS 8 /* XXX should be 20, but see PR276517 */
#include <sys/disklabel.h>
#include <unistd.h>