EVP_MD_CTX is allocated using EVP_MD_CTX_new() but was never freed.
ctx should be initialized to NULL otherwise EVP_MD_CTX_free(ctx) could
segfault.
Must be backported as far as 3.2.
*/
size_t jws_b64_signature(EVP_PKEY *pkey, enum jwt_alg alg, char *b64protected, char *b64payload, char *dst, size_t dsize)
{
- EVP_MD_CTX *ctx;
+ EVP_MD_CTX *ctx = NULL;
const EVP_MD *evp_md = NULL;
int ret = 0;
struct buffer *sign = NULL;
ret = a2base64url(sign->area, sign->data, dst, dsize);
out:
+ EVP_MD_CTX_free(ctx);
free_trash_chunk(sign);
if (ret > 0)