res_pjsip_outbound_authenticator_digest: Prevent ABRT on cleanup

In dev mode, if you call pjsip_auth_clt_deinit() with an auth_sess
that hasn't been initialized, it'll assert and abort.  If
digest_create_request_with_auth() fails to find the proper
auth object however, it jumps to its cleanup which does exactly
that.  So now we no longer attempt to call pjsip_auth_clt_deinit()
if we never actually initialized it.

ASTERISK-29888

Change-Id: Ib6171c25c9fe8e61cc8d11129e324c021bc30b62
This commit is contained in:
George Joseph 2022-01-31 06:09:09 -07:00
parent 1a8d320a29
commit 4142e548e8
1 changed files with 4 additions and 2 deletions

View File

@ -563,8 +563,10 @@ static int digest_create_request_with_auth(const struct ast_sip_auth_vector *aut
cleanup:
#if defined(HAVE_PJSIP_AUTH_CLT_DEINIT)
/* Release any cached auths */
pjsip_auth_clt_deinit(&auth_sess);
/* If we initialized the auth_sess, clean it up */
if (auth_sess.endpt) {
pjsip_auth_clt_deinit(&auth_sess);
}
#endif
ast_sip_cleanup_auth_objects_vector(&auth_objects_vector);