Thu Jan 8 13:04:03 CST 2009 Pekka Pessi <first.last@nokia.com>

* auth_client: do not crash with unknown authentication schemes



git-svn-id: http://svn.freeswitch.org/svn/freeswitch/trunk@11779 d0543943-73ff-0310-b7d9-9358b9ac24b2
This commit is contained in:
Michael Jerris 2009-02-11 16:18:36 +00:00
parent 1ad83d3c42
commit 0e7377b897
3 changed files with 11 additions and 4 deletions

View File

@ -1 +1 @@
Wed Feb 11 10:16:40 CST 2009
Wed Feb 11 10:18:18 CST 2009

View File

@ -128,11 +128,17 @@ int auc_challenge(auth_client_t **auc_list,
if (!matched) {
/* There was no matching authenticator, create a new one */
*cca = ca_create(home, scheme, realm);
if (ca_challenge((*cca), ch, crcl, scheme, realm) < 0) {
if (*cca == NULL) {
return -1;
}
else if (ca_challenge((*cca), ch, crcl, scheme, realm) < 0) {
ca_destroy(home, *cca), *cca = NULL;
return -1;
}
retval = 1; /* Updated authenticator */
/* XXX - case w/ unknown authentication scheme */
else
retval = 1; /* Updated authenticator */
}
}

View File

@ -98,7 +98,8 @@ struct auth_client_plugin
/** Check if authentication client has been extended. @NEW_1_12_6. */
#define AUTH_CLIENT_IS_EXTENDED(ca) \
((ca)->ca_auc->auc_plugin_size > \
((ca)->ca_auc && \
(ca)->ca_auc->auc_plugin_size > \
(int)offsetof(auth_client_plugin_t, auc_clear) \
&& (ca)->ca_auc->auc_clear != NULL)