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

Author: Daniel-Constantin Mierla <[email protected]>
Committer: Daniel-Constantin Mierla <[email protected]>
Date: 2017-12-08T09:20:02+01:00

lcr: safety checks for parms of kemi functions

---

Modified: src/modules/lcr/lcr_mod.c

---

Diff:  
https://github.com/kamailio/kamailio/commit/c0c374ef15a99eef745570dd78926f6248187493.diff
Patch: 
https://github.com/kamailio/kamailio/commit/c0c374ef15a99eef745570dd78926f6248187493.patch

---

diff --git a/src/modules/lcr/lcr_mod.c b/src/modules/lcr/lcr_mod.c
index eecab748f6..beeeec0e23 100644
--- a/src/modules/lcr/lcr_mod.c
+++ b/src/modules/lcr/lcr_mod.c
@@ -2201,8 +2201,9 @@ static int ki_load_gws_furi(sip_msg_t *_m, int lcr_id, 
str *ruri_user,
        struct usr_avp *avp;
        struct search_state st;
 
-       LM_DBG("load_gws(%u, %.*s, %.*s)\n", lcr_id, ruri_user->len, 
ruri_user->s,
-                       from_uri->len, from_uri->s);
+       LM_DBG("load_gws(%u, %.*s, %.*s)\n", lcr_id,
+                       ruri_user->len, ZSW(ruri_user->s),
+                       from_uri->len, ZSW(from_uri->s));
 
        request_uri = GET_RURI(_m);
 
@@ -2363,6 +2364,10 @@ static int ki_load_gws_ruser(sip_msg_t *_m, int lcr_id, 
str *ruri_user)
 {
        str from_uri = STR_NULL;
 
+       if(ruri_user==NULL || ruri_user->s==NULL) {
+               LM_ERR("invalid parameter\n");
+               return -1;
+       }
        return ki_load_gws_furi(_m, lcr_id, ruri_user, &from_uri);
 }
 
@@ -2371,9 +2376,15 @@ static int ki_load_gws_ruser(sip_msg_t *_m, int lcr_id, 
str *ruri_user)
  */
 static int ki_load_gws(sip_msg_t *_m, int lcr_id)
 {
-       str ruri_user = STR_NULL;
+       str ruri_user;
        str from_uri = STR_NULL;
 
+       if ((parse_sip_msg_uri(_m) < 0) || (!_m->parsed_uri.user.s)) {
+           LM_ERR("error while parsing R-URI\n");
+           return -1;
+       }
+       ruri_user = _m->parsed_uri.user;
+
        return ki_load_gws_furi(_m, lcr_id, &ruri_user, &from_uri);
 }
 
@@ -3444,4 +3455,4 @@ int mod_register(char *path, int *dlflags, void *p1, void 
*p2)
 {
        sr_kemi_modules_add(sr_kemi_lcr_exports);
        return 0;
-}
\ No newline at end of file
+}


_______________________________________________
Kamailio (SER) - Development Mailing List
[email protected]
https://lists.kamailio.org/cgi-bin/mailman/listinfo/sr-dev

Reply via email to