git: a59eba2caacf - stable/13 - bsdlabel: limit to 8 partitions

From: Ed Maste <emaste_at_FreeBSD.org>
Date: Fri, 22 Mar 2024 18:45:25 UTC
The branch stable/13 has been updated by emaste:

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

commit a59eba2caacf82f741e8bbc334b2382c615744df
Author:     Ed Maste <emaste@FreeBSD.org>
AuthorDate: 2024-01-23 02:05:58 +0000
Commit:     Ed Maste <emaste@FreeBSD.org>
CommitDate: 2024-03-22 18:45:13 +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
    (cherry picked from commit 3f4f82c0d7791bddf2d6f2c29d9f2f8c48c712e2)
    (cherry picked from commit a323dd42bcacdcd6b710fb90ba6691c6ce60cd3d)
---
 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 7c7a5bbd6219..5f45039caecb 100644
--- a/sbin/bsdlabel/bsdlabel.c
+++ b/sbin/bsdlabel/bsdlabel.c
@@ -63,7 +63,7 @@ static char sccsid[] = "@(#)disklabel.c	8.2 (Berkeley) 1/7/94";
 #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>