diff options
Diffstat (limited to 'usr/src/lib/libdiskmgt/common/partition.c')
-rw-r--r-- | usr/src/lib/libdiskmgt/common/partition.c | 6 |
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); } } |