• Herbert Xu's avatar
    crypto: authenc - Avoid using clobbered request pointer · a697690b
    Herbert Xu authored
    Authenc works in two stages for encryption, it first encrypts and
    then computes an ICV.  The context memory of the request is used
    by both operations.  The problem is that when an asynchronous
    encryption completes, we will compute the ICV and then reread the
    context memory of the encryption to get the original request.
    
    It just happens that we have a buffer of 16 bytes in front of the
    request pointer, so ICVs of 16 bytes (such as SHA1) do not trigger
    the bug.  However, any attempt to uses a larger ICV instantly kills
    the machine when the first asynchronous encryption is completed.
    
    This patch fixes this by saving the request pointer before we start
    the ICV computation.
    Signed-off-by: default avatarHerbert Xu <herbert@gondor.apana.org.au>
    a697690b
authenc.c 13 KB