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:02:45 +0000 (15:02 +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)

test/evp_test.c

index f0e8ca35c0d0091855f519ae8f5c1a2460a68ae3..e1a5f14328bb53127a8f98a5f90957de30043a75 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;
     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))
     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;
             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,
             if (!EVP_CipherUpdate(ctx, tmp + out_misalign + tmplen, &chunklen,
-                                  in + donelen, in_len - 2))
+                                  in, in_len - 1))
                 goto err;
             tmplen += chunklen;
                 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,
             if (!EVP_CipherUpdate(ctx, tmp + out_misalign + tmplen, &chunklen,
-                                  in + donelen, 1))
+                                  in, 1))
                 goto err;
             tmplen += chunklen;
         }
                 goto err;
             tmplen += chunklen;
         }