Module: sip-router
Branch: master
Commit: ef8fae0e21ca09725c7f9c06384e0a4ce37c4c6e
URL:    
http://git.sip-router.org/cgi-bin/gitweb.cgi/sip-router/?a=commit;h=ef8fae0e21ca09725c7f9c06384e0a4ce37c4c6e

Author: Daniel-Constantin Mierla <[email protected]>
Committer: Daniel-Constantin Mierla <[email protected]>
Date:   Sun Mar 24 13:24:58 2013 +0100

enum: define the max size for numbers

- set it to 22 (previously hardcoded value was 17)
- easier to adjust and check for overlenght
- patch by Marcus Hunger

---

 modules/enum/enum.c |    8 ++++----
 modules/enum/enum.h |    5 +++--
 2 files changed, 7 insertions(+), 6 deletions(-)

diff --git a/modules/enum/enum.c b/modules/enum/enum.c
index 756f4e5..166be63 100644
--- a/modules/enum/enum.c
+++ b/modules/enum/enum.c
@@ -256,7 +256,7 @@ static inline int is_e164(str* _user)
        int i;
        char c;
        
-       if ((_user->len > 2) && (_user->len < 17) && ((_user->s)[0] == '+')) {
+       if ((_user->len > 2) && (_user->len < MAX_NUM_LEN) && ((_user->s)[0] == 
'+')) {
                for (i = 1; i < _user->len; i++) {
                        c = (_user->s)[i];
                        if ((c < '0') || (c > '9')) return -1;
@@ -309,7 +309,7 @@ int is_from_user_enum_2(struct sip_msg* _msg, char* 
_suffix, char* _service)
        struct naptr_rdata* naptr;
 
        str pattern, replacement, result;
-       char string[17];
+       char string[MAX_NUM_LEN];
 
        if (parse_from_header(_msg) < 0) {
            LM_ERR("Failed to parse From header\n");
@@ -754,7 +754,7 @@ int enum_query(struct sip_msg* _msg, str* suffix, str* 
service)
        char *user_s;
        int user_len, i, j;
        char name[MAX_DOMAIN_SIZE];
-       char string[17];
+       char string[MAX_NUM_LEN];
 
        LM_DBG("enum_query on suffix <%.*s> service <%.*s>\n",
               suffix->len, suffix->s, service->len, service->s);
@@ -818,7 +818,7 @@ int i_enum_query_2(struct sip_msg* _msg, char* _suffix, 
char* _service)
        int cc_len;
        struct rdata* head;
 
-       char string[17];
+       char string[MAX_NUM_LEN];
 
        str *suffix, *service;
 
diff --git a/modules/enum/enum.h b/modules/enum/enum.h
index 2dffce0..d3d5e2a 100644
--- a/modules/enum/enum.h
+++ b/modules/enum/enum.h
@@ -37,8 +37,9 @@
 
 
 #define MAX_DOMAIN_SIZE 256
-#define MAX_COMPONENT_SIZE 32  /* separator, apex, ... This simplifies checks 
*/
-               
+#define MAX_NUM_LEN 22
+#define MAX_COMPONENT_SIZE (MAX_NUM_LEN * 2)  /* separator, apex, ... This 
simplifies checks */
+
 
 /*
  * Check if from user is an e164 number and has a naptr record


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

Reply via email to