Module: kamailio Branch: master Commit: acc79d89660433c5f8827efb16f224709571f342 URL: https://github.com/kamailio/kamailio/commit/acc79d89660433c5f8827efb16f22470...
Author: jaybeepee jason.penton@gmail.com Committer: jaybeepee jason.penton@gmail.com Date: 2015-11-30T20:59:26+02:00
modules/ims_auth: correct analysis of return value for t_suspend
---
Modified: modules/ims_auth/authorize.c
---
Diff: https://github.com/kamailio/kamailio/commit/acc79d89660433c5f8827efb16f22470... Patch: https://github.com/kamailio/kamailio/commit/acc79d89660433c5f8827efb16f22470...
---
diff --git a/modules/ims_auth/authorize.c b/modules/ims_auth/authorize.c index 001412c..ae83436 100644 --- a/modules/ims_auth/authorize.c +++ b/modules/ims_auth/authorize.c @@ -465,10 +465,9 @@ int challenge(struct sip_msg* msg, char* str1, char* alg, int is_proxy_auth, cha saved_t->is_proxy_auth = is_proxy_auth;
LM_DBG("Suspending SIP TM transaction\n"); - if (tmb.t_suspend(msg, &saved_t->tindex, &saved_t->tlabel) < 0) { + if (tmb.t_suspend(msg, &saved_t->tindex, &saved_t->tlabel) != 0) { LM_ERR("failed to suspend the TM processing\n"); free_saved_transaction_data(saved_t); - stateful_request_reply(msg, 480, MSG_480_DIAMETER_ERROR); return CSCF_RETURN_BREAK; } @@ -856,6 +855,10 @@ int authenticate(struct sip_msg* msg, char* _realm, char* str2, int is_proxy_aut /* if QOP is sent, nc must be specified */ /* the expected nc is the last used one plus 1 */ int p; + if (!nc.s || nc.len < 8 ) { + LM_ERR("qop specified with no nonce count... failing\n"); + goto cleanup; + } for (p = 0; p < 8; ++p) { /* nc is 8LHEX (RFC 2617 ยง3.2.2) */ nc_parsed = (nc_parsed << 4) | UNHEX((int) nc.s[p]); } @@ -870,7 +873,7 @@ int authenticate(struct sip_msg* msg, char* _realm, char* str2, int is_proxy_aut av->status = AUTH_VECTOR_USELESS; goto cleanup; } - } + }
switch (av->type) { case AUTH_AKAV1_MD5: