@@ -189,6 +189,7 @@ START_TEST(test_jose_jwk_and_json_and_copy_lists) {
189189 char * s_json = NULL ;
190190 ck_assert_msg (oidc_jwk_to_json (pool , pub , & s_json , & err ) == TRUE, "oidc_jwk_to_json failed" );
191191 ck_assert_ptr_nonnull (s_json );
192+ oidc_jwk_destroy (pub );
192193 json_error_t je ;
193194 json_t * j = json_loads (s_json , 0 , & je );
194195 ck_assert_ptr_nonnull (j );
@@ -206,16 +207,21 @@ START_TEST(test_jose_jwk_and_json_and_copy_lists) {
206207 oidc_jwk_t * sym_copy = oidc_jwk_copy (pool , sym );
207208 ck_assert_ptr_nonnull (sym_copy );
208209 ck_assert_ptr_nonnull (sym_copy -> kid );
210+ oidc_jwk_destroy (sym_copy );
209211
210212 apr_array_header_t * arr = apr_array_make (pool , 1 , sizeof (const oidc_jwk_t * ));
211213 APR_ARRAY_PUSH (arr , const oidc_jwk_t * ) = sym ;
212214 apr_array_header_t * arr_copy = oidc_jwk_list_copy (pool , arr );
213215 ck_assert_msg (arr_copy != NULL && arr_copy -> nelts == 1 , "oidc_jwk_list_copy failed" );
216+ oidc_jwk_list_destroy (arr_copy );
214217
215218 apr_hash_t * h = apr_hash_make (pool );
216219 apr_hash_set (h , sym -> kid , APR_HASH_KEY_STRING , sym );
217220 oidc_jwk_list_destroy_hash (h );
218221 ck_assert_int_eq (apr_hash_count (h ), 0 );
222+
223+ oidc_jwk_list_destroy (arr );
224+ ck_assert_int_eq (arr -> nelts , 0 );
219225}
220226END_TEST
221227
@@ -252,11 +258,15 @@ START_TEST(test_jwt_sign_verify_and_encrypt_decrypt) {
252258 apr_hash_set (keys , sym -> kid , APR_HASH_KEY_STRING , sym );
253259 ck_assert_msg (oidc_jwt_verify (pool , jwt , keys , & err ) == TRUE, "oidc_jwt_verify failed" );
254260
261+ oidc_jwk_destroy (sym );
262+ oidc_jwt_destroy (jwt );
263+
255264 oidc_jwt_t * none_jwt = oidc_jwt_new (pool , 1 , 1 );
256265 json_object_set_new (none_jwt -> payload .value .json , "hello" , json_string ("world" ));
257266 none_jwt -> header .alg = apr_pstrdup (pool , CJOSE_HDR_ALG_NONE );
258267 char * s = oidc_jose_jwt_serialize (pool , none_jwt , & err );
259268 ck_assert_ptr_nonnull (s );
269+ oidc_jwt_destroy (none_jwt );
260270
261271 char * dot = strchr (s , '.' );
262272 ck_assert_ptr_nonnull (dot );
@@ -311,6 +321,8 @@ START_TEST(test_jwt_sign_verify_and_encrypt_decrypt) {
311321 ck_assert_msg (oidc_jwt_encrypt (pool , jwe , pub , payload , (int )_oidc_strlen (payload ), & serialized , & err ) == TRUE,
312322 "oidc_jwt_encrypt failed" );
313323 ck_assert_ptr_nonnull (serialized );
324+ oidc_jwk_destroy (pub );
325+ oidc_jwt_destroy (jwe );
314326
315327 apr_hash_t * dec_keys = apr_hash_make (pool );
316328 apr_hash_set (dec_keys , priv -> kid , APR_HASH_KEY_STRING , priv );
@@ -320,6 +332,8 @@ START_TEST(test_jwt_sign_verify_and_encrypt_decrypt) {
320332 "oidc_jwe_decrypt failed" );
321333 ck_assert_msg (dec_plain_len == (int )_oidc_strlen (payload ), "decrypted length mismatch" );
322334 ck_assert_msg (memcmp (dec_plain , payload , dec_plain_len ) == 0 , "decrypted plaintext mismatch" );
335+
336+ oidc_jwk_list_destroy_hash (dec_keys );
323337}
324338END_TEST
325339
@@ -358,13 +372,15 @@ START_TEST(test_jwk_json_parse_and_jwks) {
358372
359373 char * s_json = NULL ;
360374 ck_assert_msg (oidc_jwk_to_json (pool , pub , & s_json , & err ) == TRUE, "oidc_jwk_to_json failed" );
375+ oidc_jwk_destroy (pub );
361376 json_error_t je ;
362377 json_t * j = json_loads (s_json , 0 , & je );
363378 ck_assert_ptr_nonnull (j );
364379
365380 oidc_jwk_t * parsed = oidc_jwk_parse (pool , j , & err );
366381 ck_assert_ptr_nonnull (parsed );
367382 ck_assert_ptr_nonnull (parsed -> kid );
383+ oidc_jwk_destroy (parsed );
368384
369385 ck_assert_msg (oidc_is_jwk (j ) == TRUE, "oidc_is_jwk false for JWK json" );
370386
@@ -379,6 +395,7 @@ START_TEST(test_jwk_json_parse_and_jwks) {
379395
380396 json_decref (j );
381397 json_decref (jwks );
398+ oidc_jwk_list_destroy (jwk_list );
382399}
383400END_TEST
384401
@@ -418,15 +435,20 @@ START_TEST(test_alg2keysize_and_hdr_get_and_jwt_parse) {
418435 char * s = oidc_jose_jwt_serialize (pool , jwt , & err );
419436 ck_assert_ptr_nonnull (s );
420437
438+ oidc_jwt_destroy (jwt );
439+
421440 apr_hash_t * keys = apr_hash_make (pool );
422441 apr_hash_set (keys , sym -> kid , APR_HASH_KEY_STRING , sym );
423442 oidc_jwt_t * parsed = NULL ;
424443 ck_assert_msg (oidc_jwt_parse (pool , s , & parsed , keys , FALSE, & err ) == TRUE, "oidc_jwt_parse failed" );
425444 ck_assert_ptr_nonnull (parsed );
426445
446+ oidc_jwk_destroy (sym );
447+
427448 const char * alg = oidc_jwt_hdr_get (parsed , "alg" );
428449 ck_assert_ptr_nonnull (alg );
429450 ck_assert_msg (_oidc_strcmp (alg , CJOSE_HDR_ALG_HS256 ) == 0 , "parsed alg mismatch" );
451+ oidc_jwt_destroy (parsed );
430452}
431453END_TEST
432454
0 commit comments