Adjust in and in_len instead of donelen
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)
This commit is contained in:
parent
7141ba3196
commit
ef055ec536
1 changed files with 8 additions and 7 deletions
|
@ -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;
|
||||
}
|
||||
|
|
Loading…
Reference in a new issue