summaryrefslogtreecommitdiff
path: root/devel/uclmmbase/files/patch-src__mbus_parser.c
diff options
context:
space:
mode:
Diffstat (limited to 'devel/uclmmbase/files/patch-src__mbus_parser.c')
-rw-r--r--devel/uclmmbase/files/patch-src__mbus_parser.c23
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) {