Module: kamailio
Branch: master
Commit: acc79d89660433c5f8827efb16f224709571f342
URL: 
https://github.com/kamailio/kamailio/commit/acc79d89660433c5f8827efb16f224709571f342

Author: jaybeepee <[email protected]>
Committer: jaybeepee <[email protected]>
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/acc79d89660433c5f8827efb16f224709571f342.diff
Patch: 
https://github.com/kamailio/kamailio/commit/acc79d89660433c5f8827efb16f224709571f342.patch

---

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:


_______________________________________________
sr-dev mailing list
[email protected]
http://lists.sip-router.org/cgi-bin/mailman/listinfo/sr-dev

Reply via email to