summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorStef Walter <stef@memberwebs.com>2007-05-24 23:22:10 +0000
committerStef Walter <stef@memberwebs.com>2007-05-24 23:22:10 +0000
commit7515c2cada4d2fe348fcf8917b4ee463988ef557 (patch)
tree55a2523e2a7519b8f1d97e7e2f642f4b40ef7b07
parentd42325a2687e2e48c433ea74848b6fe32c4c7283 (diff)
Fix problem with an assert when lines were too long.
-rw-r--r--ChangeLog1
-rw-r--r--configure.in4
-rw-r--r--module/bsnmp-regex.c13
3 files changed, 10 insertions, 8 deletions
diff --git a/ChangeLog b/ChangeLog
index 1f327c6..306c79a 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,4 +1,5 @@
0.2:
+ * Fix bug with an assert on long lines
* Better configure.in checks.
* Cleanup the MIB a bit
diff --git a/configure.in b/configure.in
index 2f63558..adf55f4 100644
--- a/configure.in
+++ b/configure.in
@@ -1,6 +1,6 @@
# Process this file with autoconf to produce a configure script.
-AC_INIT(bsnmp-regex, 0.1, nielsen@memberwebs.com)
-AM_INIT_AUTOMAKE(bsnmp-regex, 0.1)
+AC_INIT(bsnmp-regex, 0.1.90, nielsen@memberwebs.com)
+AM_INIT_AUTOMAKE(bsnmp-regex, 0.1.90)
AC_CONFIG_SRCDIR([module/bsnmp-regex.c])
AM_CONFIG_HEADER([config.h])
diff --git a/module/bsnmp-regex.c b/module/bsnmp-regex.c
index cfa8163..a859264 100644
--- a/module/bsnmp-regex.c
+++ b/module/bsnmp-regex.c
@@ -450,7 +450,7 @@ io_data (int fd, void *user_data)
{
struct connection *conn = (struct connection*)user_data;
char *line_buffer;
- char *t;
+ char *t, *n;
int len;
int r, l;
@@ -491,19 +491,20 @@ io_data (int fd, void *user_data)
break;
}
+ n = t;
+
/* Break line (also DOS line) */
*t = 0;
if (line_buffer != t && *(t - 1) == '\r')
- *(t - 1) = 0;
- l = (t + 1) - line_buffer;
+ *(--t) = 0;
+ l = t - line_buffer;
/* Send it off */
process_log (line_buffer, l);
/* Move data to front of buffer */
- ASSERT (l <= len);
- memmove (line_buffer, t + 1, (len - l) + 1);
- len -= l;
+ len -= (n - line_buffer);
+ memmove (line_buffer, n, len);
}
} while (r > 0);