mirror of https://github.com/torvalds/linux.git
crypto: ahash - Zero positive err value in ahash_update_finish
The partial block length returned by a block-only driver should
not be passed up to the caller since ahash itself deals with the
partial block data.
Set err to zero in ahash_update_finish if it was positive.
Reported-by: T Pratham <t-pratham@ti.com>
Tested-by: T Pratham <t-pratham@ti.com>
Fixes: 9d7a0ab1c7 ("crypto: ahash - Handle partial blocks in API")
Signed-off-by: Herbert Xu <herbert@gondor.apana.org.au>
This commit is contained in:
parent
b0356b75f4
commit
ebbdf6466b
|
|
@ -423,7 +423,11 @@ static int ahash_update_finish(struct ahash_request *req, int err)
|
|||
|
||||
req->nbytes += nonzero - blen;
|
||||
|
||||
blen = err < 0 ? 0 : err + nonzero;
|
||||
blen = 0;
|
||||
if (err >= 0) {
|
||||
blen = err + nonzero;
|
||||
err = 0;
|
||||
}
|
||||
if (ahash_request_isvirt(req))
|
||||
memcpy(buf, req->svirt + req->nbytes - blen, blen);
|
||||
else
|
||||
|
|
|
|||
Loading…
Reference in New Issue