Convert jffs2 acl to struct_size
authorMatthew Wilcox <mawilcox@microsoft.com>
Thu, 7 Jun 2018 14:57:19 +0000 (07:57 -0700)
committerKees Cook <keescook@chromium.org>
Tue, 12 Jun 2018 23:19:22 +0000 (16:19 -0700)
Need to tell the compiler that the acl entries follow the acl header.

Signed-off-by: Matthew Wilcox <mawilcox@microsoft.com>
Signed-off-by: Kees Cook <keescook@chromium.org>
fs/jffs2/acl.c
fs/jffs2/acl.h

index 7ebacf1..093ffbd 100644 (file)
@@ -133,7 +133,8 @@ static void *jffs2_acl_to_medium(const struct posix_acl *acl, size_t *size)
        size_t i;
 
        *size = jffs2_acl_size(acl->a_count);
-       header = kmalloc(sizeof(*header) + acl->a_count * sizeof(*entry), GFP_KERNEL);
+       header = kmalloc(struct_size(header, a_entries, acl->a_count),
+                       GFP_KERNEL);
        if (!header)
                return ERR_PTR(-ENOMEM);
        header->a_version = cpu_to_je32(JFFS2_ACL_VERSION);
index 2e2b574..12d0271 100644 (file)
@@ -22,6 +22,7 @@ struct jffs2_acl_entry_short {
 
 struct jffs2_acl_header {
        jint32_t        a_version;
+       struct jffs2_acl_entry  a_entries[];
 };
 
 #ifdef CONFIG_JFFS2_FS_POSIX_ACL