summaryrefslogtreecommitdiff
path: root/usr/src/lib/libdiskmgt/common/partition.c
diff options
context:
space:
mode:
Diffstat (limited to 'usr/src/lib/libdiskmgt/common/partition.c')
-rw-r--r--usr/src/lib/libdiskmgt/common/partition.c6
1 files changed, 6 insertions, 0 deletions
diff --git a/usr/src/lib/libdiskmgt/common/partition.c b/usr/src/lib/libdiskmgt/common/partition.c
index b10cfc658a..ed30cde80f 100644
--- a/usr/src/lib/libdiskmgt/common/partition.c
+++ b/usr/src/lib/libdiskmgt/common/partition.c
@@ -652,9 +652,15 @@ get_parts(disk_t *disk, struct ipart *iparts, char *opath, int opath_len)
case FDISK_EBADLOGDRIVE:
case FDISK_ENOLOGDRIVE:
free(device);
+ libfdisk_fini(&epp);
continue;
+ case FDISK_EBADMAGIC:
+ free(device);
+ libfdisk_fini(&epp);
+ return (ENOTTY);
default:
free(device);
+ libfdisk_fini(&epp);
return (ENODEV);
}
}