Re: [PATCH v2] UBIFS: compute KSA size and store in superblock

From: Artem Bityutskiy
Date: Wed May 30 2012 - 11:15:02 EST


Hi,

On Wed, 2012-05-30 at 15:32 +0200, Joel Reardon wrote:
> @@ -389,6 +408,7 @@ static int validate_sb(struct ubifs_info *c, struct ubifs_sb_node *sup)
> */
> min_leb_cnt = UBIFS_SB_LEBS + UBIFS_MST_LEBS + c->log_lebs;
> min_leb_cnt += c->lpt_lebs + c->orph_lebs + c->jhead_cnt + 6;
> + min_leb_cnt += c->ksa_lebs;

You need to validate that:

1. if use_ubifsec is true, then ksa_lebs is not zero.
2. ksa_lebs is sane - not too small, not too large.

> diff --git a/fs/ubifs/ubifs-media.h b/fs/ubifs/ubifs-media.h
> index 90f348c..1dda25d 100644
> --- a/fs/ubifs/ubifs-media.h
> +++ b/fs/ubifs/ubifs-media.h
> @@ -618,10 +618,13 @@ struct ubifs_pad_node {
> * @rp_uid: reserve pool UID
> * @rp_gid: reserve pool GID
> * @rp_size: size of the reserved pool in bytes
> - * @padding2: reserved for future, zeroes

Do not remove this comment.

> * @time_gran: time granularity in nanoseconds
> * @uuid: UUID generated when the file system image was created
> * @ro_compat_version: UBIFS R/O compatibility version
> + * @crypto_lebs: number of LEBS being used to store keys
> + * @use_ubifsec: the LSB signifies whether the file system should use secure
> + * deletion
> + * @padding2: reserved for future, zeroes
> */
> struct ubifs_sb_node {
> struct ubifs_ch ch;
> @@ -649,7 +652,9 @@ struct ubifs_sb_node {
> __le32 time_gran;
> __u8 uuid[16];
> __le32 ro_compat_version;
> - __u8 padding2[3968];
> + __le32 ksa_lebs;
> + __u8 use_ubifsec;
> + __u8 padding2[3963];
> } __packed;

--
Best Regards,
Artem Bityutskiy

Attachment: signature.asc
Description: This is a digitally signed message part