summaryrefslogtreecommitdiffstats
path: root/release/sysinstall/disks.c
diff options
context:
space:
mode:
authorjkh <jkh@FreeBSD.org>1997-01-16 14:42:21 +0000
committerjkh <jkh@FreeBSD.org>1997-01-16 14:42:21 +0000
commit433374c7cc02c7f2d0784f1e532182802297f8b2 (patch)
tree5a0a76133ec42178999aeaf9f66caac27d2e6f72 /release/sysinstall/disks.c
parent3ece85326eac10132c7b012edcf3557c580d65c9 (diff)
downloadFreeBSD-src-433374c7cc02c7f2d0784f1e532182802297f8b2.zip
FreeBSD-src-433374c7cc02c7f2d0784f1e532182802297f8b2.tar.gz
Cope with Open_Disk() failure much more gracefully.
Diffstat (limited to 'release/sysinstall/disks.c')
-rw-r--r--release/sysinstall/disks.c18
1 files changed, 10 insertions, 8 deletions
diff --git a/release/sysinstall/disks.c b/release/sysinstall/disks.c
index fb66e3a..b4f0900 100644
--- a/release/sysinstall/disks.c
+++ b/release/sysinstall/disks.c
@@ -189,7 +189,8 @@ diskPartition(Device *dev, Disk *d)
char *val, geometry[80];
/* Now print our overall state */
- print_chunks(d);
+ if (d)
+ print_chunks(d);
print_command_summary();
if (msg) {
attrset(title_attr); mvprintw(23, 0, msg); attrset(A_NORMAL);
@@ -357,17 +358,18 @@ diskPartition(Device *dev, Disk *d)
"can't undo it.");
}
else if (!msgYesNo("Are you SURE you want to Undo everything?")) {
- d = Open_Disk(d->name);
- if (!d) {
- msgConfirm("Can't reopen disk %s! Internal state is probably corrupted", d->name);
- clear();
- break;
- }
+ char cp[BUFSIZ];
+
+ sstrncpy(cp, d->name, sizeof cp);
Free_Disk(dev->private);
+ d = Open_Disk(cp);
+ if (!d)
+ msgConfirm("Can't reopen disk %s! Internal state is probably corrupted", cp);
dev->private = d;
variable_unset(DISK_PARTITIONED);
variable_unset(DISK_LABELLED);
- record_chunks(d);
+ if (d)
+ record_chunks(d);
}
clear();
break;
OpenPOWER on IntegriCloud