summaryrefslogtreecommitdiffstats
path: root/action.c
diff options
context:
space:
mode:
authorRainer Gerhards <rgerhards@adiscon.com>2010-01-27 09:52:15 +0100
committerRainer Gerhards <rgerhards@adiscon.com>2010-01-27 09:52:15 +0100
commit074ec9495e9f07f7ff441a60f756b0d15931a8d7 (patch)
tree64a9d7bc56ed09bcf496b6bbb40f9a87c4eb3472 /action.c
parent7f4972b9fa132c7e5c8077f58e3e2845326884af (diff)
downloadrsyslog-074ec9495e9f07f7ff441a60f756b0d15931a8d7.tar.gz
rsyslog-074ec9495e9f07f7ff441a60f756b0d15931a8d7.tar.xz
rsyslog-074ec9495e9f07f7ff441a60f756b0d15931a8d7.zip
backporting bugfixes from 5.2.2
- bugfix: queues in direct mode could case a segfault, especially if an action failed for action queues. The issue was an invalid increment of a stack-based pointer which lead to destruction of the stack frame and thus a segfault on function return. Thanks to Michael Biebl for alerting us on this problem. [backport from 5.5.2] - bugfix: wrong memory assignment for a config variable (probably without causing any harm) [backport from 5.2.2]
Diffstat (limited to 'action.c')
-rw-r--r--action.c4
1 files changed, 2 insertions, 2 deletions
diff --git a/action.c b/action.c
index 67858742..aaf45593 100644
--- a/action.c
+++ b/action.c
@@ -924,12 +924,12 @@ submitBatch(action_t *pAction, batch_t *pBatch, int nElem, int *pbShutdownImmedi
} else if(localRet == RS_RET_ACTION_FAILED) {
/* in this case, the whole batch can not be processed */
for(i = 0 ; i < nElem ; ++i) {
- pBatch->pElem[++pBatch->iDoneUpTo].state = BATCH_STATE_BAD;
+ pBatch->pElem[pBatch->iDoneUpTo++].state = BATCH_STATE_BAD;
}
bDone = 1;
} else {
if(nElem == 1) {
- pBatch->pElem[++pBatch->iDoneUpTo].state = BATCH_STATE_BAD;
+ pBatch->pElem[pBatch->iDoneUpTo++].state = BATCH_STATE_BAD;
bDone = 1;
} else {
/* retry with half as much. Depth is log_2 batchsize, so recursion is not too deep */