summaryrefslogtreecommitdiff
path: root/usr/src/cmd/fdisk/fdisk.c
diff options
context:
space:
mode:
Diffstat (limited to 'usr/src/cmd/fdisk/fdisk.c')
-rw-r--r--usr/src/cmd/fdisk/fdisk.c12
1 files changed, 9 insertions, 3 deletions
diff --git a/usr/src/cmd/fdisk/fdisk.c b/usr/src/cmd/fdisk/fdisk.c
index 3d0dadc8bb..fcf854766b 100644
--- a/usr/src/cmd/fdisk/fdisk.c
+++ b/usr/src/cmd/fdisk/fdisk.c
@@ -1181,31 +1181,37 @@ main(int argc, char *argv[])
!= FDISK_SUCCESS) {
switch (rval) {
/*
- * FDISK_EBADLOGDRIVE and FDISK_ENOLOGDRIVE can
- * be considered as soft errors and hence
- * we do not exit
+ * FDISK_EBADLOGDRIVE, FDISK_ENOLOGDRIVE and
+ * FDISK_EBADMAGIC can be considered as
+ * soft errors and hence we do not exit
*/
case FDISK_EBADLOGDRIVE:
break;
case FDISK_ENOLOGDRIVE:
break;
+ case FDISK_EBADMAGIC:
+ break;
case FDISK_ENOVGEOM:
fprintf(stderr, "Could not get virtual"
" geometry for this device\n");
+ libfdisk_fini(&epp);
exit(1);
break;
case FDISK_ENOPGEOM:
fprintf(stderr, "Could not get physical"
" geometry for this device\n");
+ libfdisk_fini(&epp);
exit(1);
break;
case FDISK_ENOLGEOM:
fprintf(stderr, "Could not get label"
" geometry for this device\n");
+ libfdisk_fini(&epp);
exit(1);
break;
default:
perror("Failed to initialise libfdisk.\n");
+ libfdisk_fini(&epp);
exit(1);
break;
}