crypto: aead - Fix aead_instance struct size
authorHerbert Xu <herbert@gondor.apana.org.au>
Thu, 18 Jun 2015 06:00:49 +0000 (14:00 +0800)
committerHerbert Xu <herbert@gondor.apana.org.au>
Fri, 19 Jun 2015 06:16:30 +0000 (14:16 +0800)
commitf5d8660acb9623470adcef426c6ff7b07cbe4b74
treec52e647c29fb7cb5cc2a27aba720bea0253bb5b5
parentedf18b9108f5025f9e83b2c167c9122954acbc62
crypto: aead - Fix aead_instance struct size

The struct aead_instance is meant to extend struct crypto_instance
by incorporating the extra members of struct aead_alg.  However,
the current layout which is copied from shash/ahash does not specify
the struct fully.  In particular only aead_alg is present.

For shash/ahash this works because users there add extra headroom
to sizeof(struct crypto_instance) when allocating the instance.
Unfortunately for aead, this bit was lost when the new aead_instance
was added.

Rather than fixing it like shash/ahash, this patch simply expands
struct aead_instance to contain what is supposed to be there, i.e.,
adding struct crypto_instance.

In order to not break existing AEAD users, this is done through an
anonymous union.

Signed-off-by: Herbert Xu <herbert@gondor.apana.org.au>
include/crypto/internal/aead.h