Module Name: src
Committed By: martin
Date: Sat Jul 17 11:32:50 UTC 2021
Modified Files:
src/usr.sbin/sysinst: gpt.c partman.c
Log Message:
PR 56310: avoid assert() failures (or crashes) when the runtime addition
of a wedge fails (for whatever reasons).
To generate a diff of this commit:
cvs rdiff -u -r1.23 -r1.24 src/usr.sbin/sysinst/gpt.c
cvs rdiff -u -r1.51 -r1.52 src/usr.sbin/sysinst/partman.c
Please note that diffs are not public domain; they are subject to the
copyright notices on the relevant files.
Modified files:
Index: src/usr.sbin/sysinst/gpt.c
diff -u src/usr.sbin/sysinst/gpt.c:1.23 src/usr.sbin/sysinst/gpt.c:1.24
--- src/usr.sbin/sysinst/gpt.c:1.23 Sun Jan 31 22:45:46 2021
+++ src/usr.sbin/sysinst/gpt.c Sat Jul 17 11:32:50 2021
@@ -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 @@ gpt_get_part_device(const struct disk_pa
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:
Index: src/usr.sbin/sysinst/partman.c
diff -u src/usr.sbin/sysinst/partman.c:1.51 src/usr.sbin/sysinst/partman.c:1.52
--- src/usr.sbin/sysinst/partman.c:1.51 Sun Jan 31 22:45:46 2021
+++ src/usr.sbin/sysinst/partman.c Sat Jul 17 11:32:50 2021
@@ -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 @@ pm_menufmt(menudesc *m, int opt, void *a
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 &&