[CRYPTO] api: Fix scatterwalk_sg_chain
authorHerbert Xu <herbert@gondor.apana.org.au>
Tue, 29 Apr 2008 13:53:52 +0000 (21:53 +0800)
committerHerbert Xu <herbert@gondor.apana.org.au>
Thu, 1 May 2008 10:22:28 +0000 (18:22 +0800)
commit8ec970d8561abb5645d4602433b772e268c96d05
treed48569fb99e2fefad3e9b89f867bc8fd194f5950
parent161613293fd4b7d5ceb1faab788f47e688e07a67
[CRYPTO] api: Fix scatterwalk_sg_chain

When I backed out of using the generic sg chaining (as it isn't currently
portable) and introduced scatterwalk_sg_chain/scatterwalk_sg_next I left
out the sg_is_last check in the latter.  This causes it to potentially
dereference beyond the end of the sg array.

As most uses of scatterwalk_sg_next are bound by an overall length, this
only affected the chaining code in authenc and eseqiv. Thanks to Patrick
McHardy for identifying this problem.

This patch also clears the "last" bit on the head of the chained list as
it's no longer last.  This also went missing in scatterwalk_sg_chain and
is present in sg_chain.

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