]> git.ipfire.org Git - thirdparty/linux.git/commitdiff
crypto: deflate - Use struct_size to improve deflate_alloc_stream
authorThorsten Blum <thorsten.blum@linux.dev>
Thu, 30 Oct 2025 16:32:17 +0000 (17:32 +0100)
committerHerbert Xu <herbert@gondor.apana.org.au>
Thu, 6 Nov 2025 06:31:08 +0000 (14:31 +0800)
Use struct_size(), which provides additional compile-time checks for
structures with flexible array members (e.g., __must_be_array()), to
calculate the allocation size for a new 'deflate_stream'.

Signed-off-by: Thorsten Blum <thorsten.blum@linux.dev>
Signed-off-by: Herbert Xu <herbert@gondor.apana.org.au>
crypto/deflate.c

index 21404515dc77ec208021d82dc20ae3517e0fbbad..a3e1fff55661b732df0b46d6f0f8739389c9361d 100644 (file)
@@ -15,6 +15,7 @@
 #include <linux/kernel.h>
 #include <linux/module.h>
 #include <linux/mutex.h>
+#include <linux/overflow.h>
 #include <linux/percpu.h>
 #include <linux/scatterlist.h>
 #include <linux/slab.h>
@@ -39,7 +40,7 @@ static void *deflate_alloc_stream(void)
                                                     DEFLATE_DEF_MEMLEVEL));
        struct deflate_stream *ctx;
 
-       ctx = kvmalloc(sizeof(*ctx) + size, GFP_KERNEL);
+       ctx = kvmalloc(struct_size(ctx, workspace, size), GFP_KERNEL);
        if (!ctx)
                return ERR_PTR(-ENOMEM);