diff options
author | Mark O'Brien <mobrien@vyatta.com> | 2008-02-27 12:50:03 -0800 |
---|---|---|
committer | Mark O'Brien <mobrien@vyatta.com> | 2008-02-27 12:50:03 -0800 |
commit | c66fe9fc9f1538f8c1588a4d62a0ae561f3a973d (patch) | |
tree | ff59c0f403623db94d201004278587aaef6f37d7 /src/cli_val.l | |
parent | 4cd7e3e784a88859d206f24b03776704cfd34d39 (diff) | |
parent | d777950023130447aaafa67df6bea41f67bcf8e0 (diff) | |
download | vyatta-cfg-c66fe9fc9f1538f8c1588a4d62a0ae561f3a973d.tar.gz vyatta-cfg-c66fe9fc9f1538f8c1588a4d62a0ae561f3a973d.zip |
Merge branch 'glendale' of git:/git/vyatta-cfg into glendale
Diffstat (limited to 'src/cli_val.l')
-rw-r--r-- | src/cli_val.l | 12 |
1 files changed, 12 insertions, 0 deletions
diff --git a/src/cli_val.l b/src/cli_val.l index 5856cea..c24a6dc 100644 --- a/src/cli_val.l +++ b/src/cli_val.l @@ -1,4 +1,7 @@ %{ +#define __USE_ISOC99 +#include <limits.h> + #include "cli_val.h" #include "cli_parse.h" #include "cli_objects.h" @@ -226,6 +229,15 @@ false { } [0-9]+ { + long long int cval = 0; + char *endp = NULL; + errno = 0; + cval = strtoll(yytext, &endp, 10); + if ((errno == ERANGE && (cval == LLONG_MAX || cval == LLONG_MIN)) + || (errno != 0 && cval == 0) + || (*endp != '\0') || (cval < 0) || (cval > UINT_MAX)) { + return SYNTAX_ERROR; + } make_val_value(INT_TYPE); return VALUE; } |