diff options
Diffstat (limited to 'devel/uclmmbase/files/patch-src__mbus_parser.c')
-rw-r--r-- | devel/uclmmbase/files/patch-src__mbus_parser.c | 23 |
1 files changed, 23 insertions, 0 deletions
diff --git a/devel/uclmmbase/files/patch-src__mbus_parser.c b/devel/uclmmbase/files/patch-src__mbus_parser.c new file mode 100644 index 000000000000..9cf7375278c1 --- /dev/null +++ b/devel/uclmmbase/files/patch-src__mbus_parser.c @@ -0,0 +1,23 @@ +--- src/mbus_parser.c 2006-09-13 13:36:11.000000000 -0400 ++++ src/mbus_parser.c 2011-03-13 20:17:35.000000000 -0400 +@@ -159,4 +159,5 @@ + { + char *p; ++ long l; + + assert(m->magic == MBUS_PARSER_MAGIC); +@@ -167,10 +168,11 @@ + } + +- *i = (int) strtol(m->buffer, &p, 10); +- if (errno == ERANGE) { +- debug_msg("integer out of range: %d\n", *i); ++ l = strtol(m->buffer, &p, 10); ++ if (l > INT_MAX || l < INT_MIN || errno == ERANGE) { ++ debug_msg("integer out of range: %s\n", m->buffer); + abort(); + return FALSE; + } ++ *i = l; + + if (p == m->buffer) { |