]> Git Repo - linux.git/commitdiff
crypto: asymmetric_keys - Fix unaligned access in x509_get_sig_params()
authorSowmini Varadhan <[email protected]>
Mon, 19 Oct 2015 21:23:28 +0000 (17:23 -0400)
committerHerbert Xu <[email protected]>
Tue, 20 Oct 2015 14:14:01 +0000 (22:14 +0800)
x509_get_sig_params() has the same code pattern as the one in
pkcs7_verify() that is fixed by commit 62f57d05e287 ("crypto: pkcs7 - Fix
unaligned access in pkcs7_verify()") so apply a similar fix here: make
sure that desc is pointing at an algined value past the digest_size,
and take alignment values into consideration when doing kzalloc()

Signed-off-by: Sowmini Varadhan <[email protected]>
Acked-by: David Howells <[email protected]>
Signed-off-by: Herbert Xu <[email protected]>
crypto/asymmetric_keys/x509_public_key.c

index 6d88dd15c98da8cada935c0dc937eb5c8db158cd..6451d1848a7d0e19b621157159c01abe130076cf 100644 (file)
@@ -194,14 +194,15 @@ int x509_get_sig_params(struct x509_certificate *cert)
         * digest storage space.
         */
        ret = -ENOMEM;
-       digest = kzalloc(digest_size + desc_size, GFP_KERNEL);
+       digest = kzalloc(ALIGN(digest_size, __alignof__(*desc)) + desc_size,
+                        GFP_KERNEL);
        if (!digest)
                goto error;
 
        cert->sig.digest = digest;
        cert->sig.digest_size = digest_size;
 
-       desc = digest + digest_size;
+       desc = PTR_ALIGN(digest + digest_size, __alignof__(*desc));
        desc->tfm = tfm;
        desc->flags = CRYPTO_TFM_REQ_MAY_SLEEP;
 
This page took 0.058912 seconds and 4 git commands to generate.