From b8d2998c4f076eefdb8fae217b19461afa3f2bc1 Mon Sep 17 00:00:00 2001 From: Sascha Wildner Date: Sat, 4 Dec 2010 03:20:29 +0100 Subject: [PATCH] installer: Fix a bug when /boot (HAMMER) or / (UFS) is are to be encrypted. The installer will warn that this is not possible, but previously left the encryption flag set. Clear it. --- usr.sbin/installer/dfuibe_installer/fn_subpart_hammer.c | 1 + usr.sbin/installer/dfuibe_installer/fn_subpart_ufs.c | 1 + usr.sbin/installer/libinstaller/diskutil.c | 6 ++++++ usr.sbin/installer/libinstaller/diskutil.h | 1 + 4 files changed, 9 insertions(+) diff --git a/usr.sbin/installer/dfuibe_installer/fn_subpart_hammer.c b/usr.sbin/installer/dfuibe_installer/fn_subpart_hammer.c index ab15576386..58dacbe620 100644 --- a/usr.sbin/installer/dfuibe_installer/fn_subpart_hammer.c +++ b/usr.sbin/installer/dfuibe_installer/fn_subpart_hammer.c @@ -575,6 +575,7 @@ warn_encrypted_boot(struct i_fn_args *a) _("You have selected encryption for the /boot partition which " "is not supported."))) { case 1: + subpartition_clr_encrypted(sp); valid = 1; break; case 2: diff --git a/usr.sbin/installer/dfuibe_installer/fn_subpart_ufs.c b/usr.sbin/installer/dfuibe_installer/fn_subpart_ufs.c index d5407c369b..1ce77ba38c 100644 --- a/usr.sbin/installer/dfuibe_installer/fn_subpart_ufs.c +++ b/usr.sbin/installer/dfuibe_installer/fn_subpart_ufs.c @@ -654,6 +654,7 @@ warn_encrypted_root(struct i_fn_args *a) _("You have selected encryption for the root partition which " "is not supported."))) { case 1: + subpartition_clr_encrypted(sp); valid = 1; break; case 2: diff --git a/usr.sbin/installer/libinstaller/diskutil.c b/usr.sbin/installer/libinstaller/diskutil.c index f6666558fe..a2da8a3812 100644 --- a/usr.sbin/installer/libinstaller/diskutil.c +++ b/usr.sbin/installer/libinstaller/diskutil.c @@ -792,6 +792,12 @@ subpartition_get_capacity(const struct subpartition *sp) return(sp->capacity); } +void +subpartition_clr_encrypted(struct subpartition *sp) +{ + sp->encrypted = 0; +} + int subpartition_is_encrypted(const struct subpartition *sp) { diff --git a/usr.sbin/installer/libinstaller/diskutil.h b/usr.sbin/installer/libinstaller/diskutil.h index ee2de806c4..c77f2dada6 100644 --- a/usr.sbin/installer/libinstaller/diskutil.h +++ b/usr.sbin/installer/libinstaller/diskutil.h @@ -177,6 +177,7 @@ char subpartition_get_letter(const struct subpartition *); unsigned long subpartition_get_fsize(const struct subpartition *); unsigned long subpartition_get_bsize(const struct subpartition *); long subpartition_get_capacity(const struct subpartition *); +void subpartition_clr_encrypted(struct subpartition *); int subpartition_is_encrypted(const struct subpartition *); int subpartition_is_swap(const struct subpartition *); int subpartition_is_softupdated(const struct subpartition *); -- 2.41.0