crypto: lrw - fix rebase error after out of bounds fix
authorArd Biesheuvel <ard.biesheuvel@linaro.org>
Sun, 30 Sep 2018 19:51:16 +0000 (21:51 +0200)
committerHerbert Xu <herbert@gondor.apana.org.au>
Fri, 5 Oct 2018 02:22:48 +0000 (10:22 +0800)
Due to an unfortunate interaction between commit fbe1a850b3b1
("crypto: lrw - Fix out-of bounds access on counter overflow") and
commit c778f96bf347 ("crypto: lrw - Optimize tweak computation"),
we ended up with a version of next_index() that always returns 127.

Fixes: c778f96bf347 ("crypto: lrw - Optimize tweak computation")
Signed-off-by: Ard Biesheuvel <ard.biesheuvel@linaro.org>
Reviewed-by: Ondrej Mosnacek <omosnace@redhat.com>
Signed-off-by: Herbert Xu <herbert@gondor.apana.org.au>
crypto/lrw.c

index 6fcf0d4311857800b4c3641d9507635f95202563..0430ccd08728655ecf4e44c65ef16e956bd928c1 100644 (file)
@@ -122,10 +122,9 @@ static int next_index(u32 *counter)
        int i, res = 0;
 
        for (i = 0; i < 4; i++) {
-               if (counter[i] + 1 != 0) {
-                       res += ffz(counter[i]++);
-                       break;
-               }
+               if (counter[i] + 1 != 0)
+                       return res + ffz(counter[i]++);
+
                counter[i] = 0;
                res += 32;
        }