diff options
author | Ilya Dryomov <idryomov@gmail.com> | 2017-01-16 19:16:46 +0100 |
---|---|---|
committer | Ilya Dryomov <idryomov@gmail.com> | 2017-01-18 17:58:45 +0100 |
commit | 124f930b8cbc4ac11236e6eb1c5f008318864588 (patch) | |
tree | b4278bec0fd61b98b913fefdc7890bedaf1099b6 | |
parent | 6e09d0fb64402cec579f029ca4c7f39f5c48fc60 (diff) |
libceph: make sure ceph_aes_crypt() IV is aligned
... otherwise the crypto stack will align it for us with a GFP_ATOMIC
allocation and a memcpy() -- see skcipher_walk_first().
Signed-off-by: Ilya Dryomov <idryomov@gmail.com>
-rw-r--r-- | net/ceph/crypto.c | 2 |
1 files changed, 1 insertions, 1 deletions
diff --git a/net/ceph/crypto.c b/net/ceph/crypto.c index 3949ce70be07..292e33bd916e 100644 --- a/net/ceph/crypto.c +++ b/net/ceph/crypto.c @@ -214,7 +214,7 @@ static int ceph_aes_crypt(const struct ceph_crypto_key *key, bool encrypt, SKCIPHER_REQUEST_ON_STACK(req, key->tfm); struct sg_table sgt; struct scatterlist prealloc_sg; - char iv[AES_BLOCK_SIZE]; + char iv[AES_BLOCK_SIZE] __aligned(8); int pad_byte = AES_BLOCK_SIZE - (in_len & (AES_BLOCK_SIZE - 1)); int crypt_len = encrypt ? in_len + pad_byte : in_len; int ret; |