tests CHANGE add test for int/uint parsers
diff --git a/src/common.c b/src/common.c
index e658031..f300958 100644
--- a/src/common.c
+++ b/src/common.c
@@ -312,6 +312,7 @@
 ly_parse_int(const char *val_str, size_t val_len, int64_t min, int64_t max, int base, int64_t *ret)
 {
     char *strptr;
+    int64_t i;
 
     LY_CHECK_ARG_RET(NULL, val_str, val_str[0], val_len, LY_EINVAL);
 
@@ -320,10 +321,10 @@
     strptr = NULL;
 
     /* parse the value */
-    *ret = strtoll(val_str, &strptr, base);
+    i = strtoll(val_str, &strptr, base);
     if (errno || strptr == val_str) {
         return LY_EVALID;
-    } else if ((*ret < min) || (*ret > max)) {
+    } else if ((i < min) || (i > max)) {
         return LY_EDENIED;
     } else if (strptr && *strptr) {
         while (isspace(*strptr)) {
@@ -333,6 +334,8 @@
             return LY_EVALID;
         }
     }
+
+    *ret = i;
     return LY_SUCCESS;
 }
 
@@ -358,8 +361,6 @@
         if (*strptr && strptr < val_str + val_len) {
             return LY_EVALID;
         }
-    } else if (u != 0 && val_str[0] == '-') {
-        return LY_EDENIED;
     }
 
     *ret = u;