Module: kamailio
Branch: 5.3
Commit: 0864bad2953aa2c85e4da0e8ebe0ce110a22db52
URL: 
https://github.com/kamailio/kamailio/commit/0864bad2953aa2c85e4da0e8ebe0ce110a22db52

Author: Daniel-Constantin Mierla <[email protected]>
Committer: Daniel-Constantin Mierla <[email protected]>
Date: 2020-01-29T10:48:06+01:00

htable: safety check for item name value

(cherry picked from commit 0dbf08635a4b2f6e544c26da0a7f542f1863939b)

---

Modified: src/modules/htable/ht_api.c

---

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

---

diff --git a/src/modules/htable/ht_api.c b/src/modules/htable/ht_api.c
index e8c27c426e..d6b94a05a6 100644
--- a/src/modules/htable/ht_api.c
+++ b/src/modules/htable/ht_api.c
@@ -237,6 +237,10 @@ ht_t* ht_get_table(str *name)
        unsigned int htid;
        ht_t *ht;
 
+       if(name==NULL || name->s==NULL) {
+               LM_WARN("invalid name parameter\n");
+               return NULL;
+       }
        htid = ht_compute_hash(name);
 
        /* does it exist */
@@ -263,6 +267,10 @@ int ht_add_table(str *name, int autoexp, str *dbtable, str 
*dbcols, int size,
        int c;
        int i;
 
+       if(name==NULL || name->s==NULL) {
+               LM_WARN("invalid name parameter\n");
+               return -1;
+       }
        htid = ht_compute_hash(name);
 
        /* does it exist */
@@ -463,8 +471,14 @@ int ht_set_cell_ex(ht_t *ht, str *name, int type, int_str 
*val, int mode,
        ht_cell_t *it, *prev, *cell;
        time_t now;
 
-       if(ht==NULL || ht->entries==NULL)
+       if(ht==NULL || ht->entries==NULL) {
+               LM_WARN("invalid ht parameter\n");
                return -1;
+       }
+       if(name==NULL || name->s==NULL) {
+               LM_WARN("invalid name parameter\n");
+               return -1;
+       }
 
        hid = ht_compute_hash(name);
 
@@ -639,6 +653,10 @@ int ht_del_cell(ht_t *ht, str *name)
        if(ht==NULL || ht->entries==NULL)
                return -1;
 
+       if(name==NULL || name->s==NULL) {
+               LM_WARN("invalid name parameter\n");
+               return -1;
+       }
        hid = ht_compute_hash(name);
 
        idx = ht_get_entry(hid, ht->htsize);
@@ -685,6 +703,10 @@ ht_cell_t* ht_cell_value_add(ht_t *ht, str *name, int val, 
ht_cell_t *old)
        if(ht==NULL || ht->entries==NULL)
                return NULL;
 
+       if(name==NULL || name->s==NULL) {
+               LM_WARN("invalid name parameter\n");
+               return NULL;
+       }
        hid = ht_compute_hash(name);
 
        idx = ht_get_entry(hid, ht->htsize);
@@ -807,6 +829,10 @@ ht_cell_t* ht_cell_pkg_copy(ht_t *ht, str *name, ht_cell_t 
*old)
        if(ht==NULL || ht->entries==NULL)
                return NULL;
 
+       if(name==NULL || name->s==NULL) {
+               LM_WARN("invalid name parameter\n");
+               return NULL;
+       }
        hid = ht_compute_hash(name);
 
        idx = ht_get_entry(hid, ht->htsize);
@@ -1157,6 +1183,10 @@ int ht_set_cell_expire(ht_t *ht, str *name, int type, 
int_str *val)
        if(ht->htexpire==0)
                return 0;
 
+       if(name==NULL || name->s==NULL) {
+               LM_WARN("invalid name parameter\n");
+               return -1;
+       }
        hid = ht_compute_hash(name);
 
        idx = ht_get_entry(hid, ht->htsize);
@@ -1202,6 +1232,10 @@ int ht_get_cell_expire(ht_t *ht, str *name, unsigned int 
*val)
        if(ht->htexpire==0)
                return 0;
 
+       if(name==NULL || name->s==NULL) {
+               LM_WARN("invalid name parameter\n");
+               return -1;
+       }
        hid = ht_compute_hash(name);
 
        idx = ht_get_entry(hid, ht->htsize);


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

Reply via email to