Sat Jul 17 11:32:50 2021 UTC ()
PR 56310: avoid assert() failures (or crashes) when the runtime addition
of a wedge fails (for whatever reasons).


(martin)
diff -r1.23 -r1.24 src/usr.sbin/sysinst/gpt.c
diff -r1.51 -r1.52 src/usr.sbin/sysinst/partman.c

cvs diff -r1.23 -r1.24 src/usr.sbin/sysinst/gpt.c (expand / switch to context diff)
--- src/usr.sbin/sysinst/gpt.c 2021/01/31 22:45:46 1.23
+++ src/usr.sbin/sysinst/gpt.c 2021/07/17 11:32:50 1.24
@@ -1,4 +1,4 @@
-/*	$NetBSD: gpt.c,v 1.23 2021/01/31 22:45:46 rillig Exp $	*/
+/*	$NetBSD: gpt.c,v 1.24 2021/07/17 11:32:50 martin Exp $	*/
 
 /*
  * Copyright 2018 The NetBSD Foundation, Inc.
@@ -1404,8 +1404,11 @@
 		usage = plain_name;
 	if (usage == plain_name || usage == raw_dev_name)
 		life = true;
-	if (!(p->gp_flags & GPEF_WEDGE) && life)
-		gpt_add_wedge(arg->disk, p);
+	if (!(p->gp_flags & GPEF_WEDGE) && life &&
+	    !gpt_add_wedge(arg->disk, p)) {
+		devname[0] = 0;
+		return false;
+	}
 
 	switch (usage) {
 	case logical_name:

cvs diff -r1.51 -r1.52 src/usr.sbin/sysinst/partman.c (expand / switch to context diff)
--- src/usr.sbin/sysinst/partman.c 2021/01/31 22:45:46 1.51
+++ src/usr.sbin/sysinst/partman.c 2021/07/17 11:32:50 1.52
@@ -1,4 +1,4 @@
-/*	$NetBSD: partman.c,v 1.51 2021/01/31 22:45:46 rillig Exp $ */
+/*	$NetBSD: partman.c,v 1.52 2021/07/17 11:32:50 martin Exp $ */
 
 /*
  * Copyright 2012 Eugene Lozovoy
@@ -2847,13 +2847,13 @@
 				dev_status);
 			break;
 		case PM_PART:
-			if (parts->pscheme->get_part_device != NULL)
-				parts->pscheme->get_part_device(
-				    parts,  part_num,
-				    dev, sizeof dev, NULL, plain_name, false,
-				    true);
-			else
-				strcpy(dev, "-");
+			if (parts->pscheme->get_part_device == NULL ||
+			    !parts->pscheme->get_part_device(
+				parts,  part_num,
+				dev, sizeof dev, NULL, plain_name, false,
+				true))
+					strcpy(dev, "-");
+
 			parts->pscheme->get_part_info(parts,
 			    part_num, &info);
 			if (pm_cur->mounted != NULL &&