Fix Issue OSS-Fuzz: Branch on uninitialized memory (in ccm code).
This would also happen for aes-ccm. There was one branch path where it just returned 1
without setting *padlen, It now branches so that the value is set to 0.
Fixes
@@ -349,7 +349,7 @@ static int ccm_cipher_internal(PROV_CCM_CTX *ctx, unsigned char *out,
/* EVP_*Final() doesn't return any data */
if (in == NULL && out != NULL)
- return 1;
+ goto finish;
if (!ctx->iv_set)
goto err;
@@ -388,6 +388,7 @@ static int ccm_cipher_internal(PROV_CCM_CTX *ctx, unsigned char *out,
}
}
olen = len;
+finish:
rv = 1;
err:
*padlen = olen;
