diff --git a/jose/apr_jose.c b/jose/apr_jose.c index 4c4bd6b6cb..f4a50914ec 100644 --- a/jose/apr_jose.c +++ b/jose/apr_jose.c @@ -144,7 +144,9 @@ APR_DECLARE(apr_jose_t *) apr_jose_jwe_make(apr_jose_t *jose, return NULL; } - jose->cty = payload->cty; + if (payload) { + jose->cty = payload->cty; + } jwe = jose->jose.jwe = apr_palloc(pool, sizeof(apr_jose_jwe_t)); if (!jwe) { diff --git a/jose/apr_jose_decode.c b/jose/apr_jose_decode.c index af10e35a48..d37bb615fd 100644 --- a/jose/apr_jose_decode.c +++ b/jose/apr_jose_decode.c @@ -616,7 +616,7 @@ apr_status_t apr_jose_decode_compact_jwe(apr_jose_t **jose, const char *left, /* tag */ jwe->encryption->tag.data = apr_pdecode_base64_binary(pool, left, - dot - left, APR_ENCODE_BASE64URL, &jwe->encryption->tag.len); + right - left, APR_ENCODE_BASE64URL, &jwe->encryption->tag.len); if (!jwe->encryption->tag.data) { apr_errprintf(&(*jose)->result, pool, NULL, 0, "Syntax error: JWE tag base64url decoding failed at %" APR_SIZE_T_FMT "",