]> git.ipfire.org Git - thirdparty/kernel/linux.git/commitdiff
crypto: ecc - Streamline alloc_point and remove {alloc,free}_digits_space
authorThorsten Blum <thorsten.blum@linux.dev>
Mon, 5 Jan 2026 22:21:53 +0000 (23:21 +0100)
committerHerbert Xu <herbert@gondor.apana.org.au>
Fri, 23 Jan 2026 05:48:44 +0000 (13:48 +0800)
Check 'ndigits' before allocating 'struct ecc_point' to return early if
needed. Inline the code from and remove ecc_alloc_digits_space() and
ecc_free_digits_space(), respectively.

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

index 6cf9a945fc6c28d74c8106da7247ab2f17ddeb39..2808b3d5f483ebe1d563d0d09f7f45130d6cb005 100644 (file)
@@ -90,33 +90,24 @@ void ecc_digits_from_bytes(const u8 *in, unsigned int nbytes,
 }
 EXPORT_SYMBOL(ecc_digits_from_bytes);
 
-static u64 *ecc_alloc_digits_space(unsigned int ndigits)
+struct ecc_point *ecc_alloc_point(unsigned int ndigits)
 {
-       size_t len = ndigits * sizeof(u64);
+       struct ecc_point *p;
+       size_t ndigits_sz;
 
-       if (!len)
+       if (!ndigits)
                return NULL;
 
-       return kmalloc(len, GFP_KERNEL);
-}
-
-static void ecc_free_digits_space(u64 *space)
-{
-       kfree_sensitive(space);
-}
-
-struct ecc_point *ecc_alloc_point(unsigned int ndigits)
-{
-       struct ecc_point *p = kmalloc(sizeof(*p), GFP_KERNEL);
-
+       p = kmalloc(sizeof(*p), GFP_KERNEL);
        if (!p)
                return NULL;
 
-       p->x = ecc_alloc_digits_space(ndigits);
+       ndigits_sz = ndigits * sizeof(u64);
+       p->x = kmalloc(ndigits_sz, GFP_KERNEL);
        if (!p->x)
                goto err_alloc_x;
 
-       p->y = ecc_alloc_digits_space(ndigits);
+       p->y = kmalloc(ndigits_sz, GFP_KERNEL);
        if (!p->y)
                goto err_alloc_y;
 
@@ -125,7 +116,7 @@ struct ecc_point *ecc_alloc_point(unsigned int ndigits)
        return p;
 
 err_alloc_y:
-       ecc_free_digits_space(p->x);
+       kfree(p->x);
 err_alloc_x:
        kfree(p);
        return NULL;