• Lukas Bulwahn's avatar
    crypto: sha512 - remove imaginary and mystifying clearing of variables · 6ae51ffe
    Lukas Bulwahn authored
    The function sha512_transform() assigns all local variables to 0 before
    returning to its caller with the intent to erase sensitive data.
    
    However, make clang-analyzer warns that all these assignments are dead
    stores, and as commit 7a4295f6 ("crypto: lib/sha256 - Don't clear
    temporary variables") already points out for sha256_transform():
    
      The assignments to clear a through h and t1/t2 are optimized out by the
      compiler because they are unused after the assignments.
    
      Clearing individual scalar variables is unlikely to be useful, as they
      may have been assigned to registers, and even if stack spilling was
      required, there may be compiler-generated temporaries that are
      impossible to clear in any case.
    
    This applies here again as well. Drop meaningless clearing of local
    variables and avoid this way that the code suggests that data is erased,
    which simply does not happen.
    Signed-off-by: default avatarLukas Bulwahn <lukas.bulwahn@gmail.com>
    Reviewed-by: default avatarNick Desaulniers <ndesaulniers@google.com>
    Signed-off-by: default avatarHerbert Xu <herbert@gondor.apana.org.au>
    6ae51ffe
sha512_generic.c 7.74 KB