summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--ChangeLog2
-rw-r--r--action.c2
-rw-r--r--runtime/datetime.c4
-rw-r--r--runtime/queue.c2
-rw-r--r--tests/tcpflood.c2
5 files changed, 9 insertions, 3 deletions
diff --git a/ChangeLog b/ChangeLog
index 5f88033a..22fc01e3 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -730,6 +730,8 @@ Version 5.10.2 [V5-STABLE], 201?-??-??
Thanks to Marius Tomaschewski for the bug report and the patch idea.
- bugfix: invalid DST handling under Solaris
Thanks to Scott Severtson for the patch.
+- bugfix: invalid decrement in pm5424 could lead to log truncation
+ Thanks to Tomas Heinrich for the patch.
- bugfix[kind of]: omudpspoof discarded messages >1472 bytes (MTU size)
it now truncates these message, but ensures they are sent. Note that
7.2.5+ will switch to fragmented UDP messages instead (up to 64K)
diff --git a/action.c b/action.c
index b8030896..efc116b5 100644
--- a/action.c
+++ b/action.c
@@ -255,7 +255,7 @@ actionResetQueueParams(void)
cs.iActionQueueDeqBatchSize = 16; /* default batch size */
cs.iActionQHighWtrMark = 800; /* high water mark for disk-assisted queues */
cs.iActionQLowWtrMark = 200; /* low water mark for disk-assisted queues */
- cs.iActionQDiscardMark = 9800; /* begin to discard messages */
+ cs.iActionQDiscardMark = 980; /* begin to discard messages */
cs.iActionQDiscardSeverity = 8; /* discard warning and above */
cs.iActionQueueNumWorkers = 1; /* number of worker threads for the mm queue above */
cs.iActionQueMaxFileSize = 1024*1024;
diff --git a/runtime/datetime.c b/runtime/datetime.c
index b047bcf3..0b9b1ae2 100644
--- a/runtime/datetime.c
+++ b/runtime/datetime.c
@@ -303,8 +303,10 @@ ParseTIMESTAMP3339(struct syslogTime *pTime, uchar** ppszTS, int *pLenStr)
if(OffsetHour < 0 || OffsetHour > 23)
ABORT_FINALIZE(RS_RET_INVLD_TIME);
- if(lenStr == 0 || *pszTS++ != ':')
+ if(lenStr == 0 || *pszTS != ':')
ABORT_FINALIZE(RS_RET_INVLD_TIME);
+ --lenStr;
+ pszTS++;
OffsetMinute = srSLMGParseInt32(&pszTS, &lenStr);
if(OffsetMinute < 0 || OffsetMinute > 59)
ABORT_FINALIZE(RS_RET_INVLD_TIME);
diff --git a/runtime/queue.c b/runtime/queue.c
index bb9ea060..09ba7e67 100644
--- a/runtime/queue.c
+++ b/runtime/queue.c
@@ -1389,7 +1389,7 @@ qqueueSetDefaultsActionQueue(qqueue_t *pThis)
pThis->iDeqBatchSize = 128; /* default batch size */
pThis->iHighWtrMrk = 800; /* high water mark for disk-assisted queues */
pThis->iLowWtrMrk = 200; /* low water mark for disk-assisted queues */
- pThis->iDiscardMrk = 9800; /* begin to discard messages */
+ pThis->iDiscardMrk = 980; /* begin to discard messages */
pThis->iDiscardSeverity = 8; /* turn off */
pThis->iNumWorkerThreads = 1; /* number of worker threads for the mm queue above */
pThis->iMaxFileSize = 1024*1024;
diff --git a/tests/tcpflood.c b/tests/tcpflood.c
index 8fd347f1..4a3199c8 100644
--- a/tests/tcpflood.c
+++ b/tests/tcpflood.c
@@ -429,6 +429,8 @@ int sendMessages(struct instdata *inst)
}
}
genMsg(buf, sizeof(buf), &lenBuf, inst); /* generate the message to send according to params */
+ if(lenBuf == 0)
+ break; /* terminate when no message could be generated */
if(transport == TP_TCP) {
if(sockArray[socknum] == -1) {
/* connection was dropped, need to re-establish */