git: 3f4f82c0d779 - main - bsdlabel: limit to 8 partitions

From: Ed Maste <emaste_at_FreeBSD.org>
Date: Tue, 23 Jan 2024 02:17:53 UTC
The branch main has been updated by emaste:

URL: https://cgit.FreeBSD.org/src/commit/?id=3f4f82c0d7791bddf2d6f2c29d9f2f8c48c712e2

commit 3f4f82c0d7791bddf2d6f2c29d9f2f8c48c712e2
Author:     Ed Maste <emaste@FreeBSD.org>
AuthorDate: 2024-01-23 02:05:58 +0000
Commit:     Ed Maste <emaste@FreeBSD.org>
CommitDate: 2024-01-23 02:17:23 +0000

    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
---
 sbin/bsdlabel/bsdlabel.c | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/sbin/bsdlabel/bsdlabel.c b/sbin/bsdlabel/bsdlabel.c
index 2c03117e344a..b831c8ba4ec6 100644
--- a/sbin/bsdlabel/bsdlabel.c
+++ b/sbin/bsdlabel/bsdlabel.c
@@ -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>