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

Author: Ovidiu Sas <[email protected]>
Committer: Ovidiu Sas <[email protected]>
Date:   Mon Feb  4 10:59:10 2013 -0500

lib/srdb1: while converting strings to int/bigint check for invalid characters

---

 lib/srdb1/db_ut.c |   14 ++++++++++++--
 1 files changed, 12 insertions(+), 2 deletions(-)

diff --git a/lib/srdb1/db_ut.c b/lib/srdb1/db_ut.c
index c57ef4d..0fa4cf5 100644
--- a/lib/srdb1/db_ut.c
+++ b/lib/srdb1/db_ut.c
@@ -73,18 +73,23 @@
 inline int db_str2int(const char* _s, int* _v)
 {
        long tmp;
+       char* p = NULL;
 
        if (!_s || !_v) {
               LM_ERR("Invalid parameter value\n");
               return -1;
        }
 
-       tmp = strtoul(_s, 0, 10);
+       tmp = strtoul(_s, &p, 10);
        if ((tmp == ULONG_MAX && errno == ERANGE) || 
            (tmp < INT_MIN) || (tmp > UINT_MAX)) {
                LM_ERR("Value out of range\n");
                return -1;
        }
+       if (p && *p != '\0') {
+               LM_ERR("Unexpected characters: [%s]\n", p);
+               return -2;
+       }
 
        *_v = (int)tmp;
        return 0;
@@ -94,17 +99,22 @@ inline int db_str2int(const char* _s, int* _v)
 inline int db_str2longlong(const char* _s, long long * _v)
 {
        long long tmp;
+       char* p = NULL;
 
        if (!_s || !_v) {
               LM_ERR("Invalid parameter value\n");
               return -1;
        }
 
-       tmp = strtoll(_s, 0, 10);
+       tmp = strtoll(_s, &p, 10);
        if (errno == ERANGE) {
                LM_ERR("Value out of range\n");
                return -1;
        }
+       if (p && *p != '\0') {
+               LM_ERR("Unexpected characters: [%s]\n", p);
+               return -2;
+       }
 
        *_v = tmp;
        return 0;


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

Reply via email to