blob: d380c55226942b6d0727536f6b6e9a98bdb02af5 (
plain) (
blame)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
|
--- src/mbus_parser.c.orig Thu Jan 23 17:39:55 2003
+++ src/mbus_parser.c Thu Jan 23 17:41:26 2003
@@ -158,6 +158,7 @@
int mbus_parse_int(struct mbus_parser *m, int *i)
{
char *p;
+ long l;
assert(m->magic == MBUS_PARSER_MAGIC);
@@ -166,11 +167,12 @@
CHECK_OVERRUN;
}
- *i = strtol(m->buffer, &p, 10);
- if (((*i == LONG_MAX) || (*i == LONG_MIN)) && (errno == ERANGE)) {
+ l = strtol(m->buffer, &p, 10);
+ if (((l >= INT_MAX) || (l <= INT_MIN)) && (errno == ERANGE)) {
debug_msg("integer out of range\n");
return FALSE;
}
+ *i = l;
if (p == m->buffer) {
return FALSE;
|