]> git.karo-electronics.de Git - karo-tx-linux.git/commit
CRYPTO xcbc: Fix crash with IPsec
authorJoy Latten <latten@austin.ibm.com>
Wed, 12 Mar 2008 04:17:45 +0000 (12:17 +0800)
committerChris Wright <chrisw@sous-sol.org>
Mon, 24 Mar 2008 18:47:12 +0000 (11:47 -0700)
commit0c7ac6f8e603b7e33c7ee268c30f2de59111951c
tree6f778315df85f98135e4d53dcbc25a8098d8a559
parent0ad5232c1ccba61437676cdb88d030b1c369dec7
CRYPTO xcbc: Fix crash with IPsec

[ Upstream commit: 2f40a178e70030c4712fe63807c883f34c3645eb ]

When using aes-xcbc-mac for authentication in IPsec,
the kernel crashes. It seems this algorithm doesn't
account for the space IPsec may make in scatterlist for authtag.
Thus when crypto_xcbc_digest_update2() gets called,
nbytes may be less than sg[i].length.
Since nbytes is an unsigned number, it wraps
at the end of the loop allowing us to go back
into loop and causing crash in memcpy.

I used update function in digest.c to model this fix.
Please let me know if it looks ok.

Signed-off-by: Joy Latten <latten@austin.ibm.com>
Signed-off-by: Herbert Xu <herbert@gondor.apana.org.au>
Signed-off-by: Chris Wright <chrisw@sous-sol.org>
Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
crypto/xcbc.c