Adjust in and in_len instead of donelen
authorMatt Caswell <matt@openssl.org>
Wed, 25 Jan 2017 09:26:35 +0000 (09:26 +0000)
committerMatt Caswell <matt@openssl.org>
Wed, 25 Jan 2017 15:07:36 +0000 (15:07 +0000)
Don't use the temp variable donelen in the non-aad fragmented code path.

Reviewed-by: Rich Salz <rsalz@openssl.org>
(Merged from https://github.com/openssl/openssl/pull/2275)
(cherry picked from commit ef055ec536a3c6e698dd9f45b41d57a32366b4fa)

test/evp_test.c

index 3a7205bc2f5094e570ef835b60a2b8e564ca68f1..02ae0a5b8055702b42b492ef71cc8027d6823b4c 100644 (file)
@@ -1012,7 +1012,6 @@ static int cipher_test_enc(struct evp_test *t, int enc,
     EVP_CIPHER_CTX_set_padding(ctx, 0);
     err = "CIPHERUPDATE_ERROR";
     tmplen = 0;
-    donelen = 0;
     if (!frag) {
         /* We supply the data all in one go */
         if (!EVP_CipherUpdate(ctx, tmp + out_misalign, &tmplen, in, in_len))
@@ -1023,18 +1022,20 @@ static int cipher_test_enc(struct evp_test *t, int enc,
             if (!EVP_CipherUpdate(ctx, tmp + out_misalign, &chunklen, in, 1))
                 goto err;
             tmplen += chunklen;
-            donelen = 1;
+            in++;
+            in_len--;
         }
-        if (in_len > 2) {
+        if (in_len > 1) {
             if (!EVP_CipherUpdate(ctx, tmp + out_misalign + tmplen, &chunklen,
-                                  in + donelen, in_len - 2))
+                                  in, in_len - 1))
                 goto err;
             tmplen += chunklen;
-            donelen += in_len - 2;
+            in += in_len - 1;
+            in_len = 1;
         }
-        if (in_len > 1 ) {
+        if (in_len > 0 ) {
             if (!EVP_CipherUpdate(ctx, tmp + out_misalign + tmplen, &chunklen,
-                                  in + donelen, 1))
+                                  in, 1))
                 goto err;
             tmplen += chunklen;
         }