diff options
author | Rainer Gerhards <rgerhards@adiscon.com> | 2010-01-27 09:52:15 +0100 |
---|---|---|
committer | Rainer Gerhards <rgerhards@adiscon.com> | 2010-01-27 09:52:15 +0100 |
commit | 074ec9495e9f07f7ff441a60f756b0d15931a8d7 (patch) | |
tree | 64a9d7bc56ed09bcf496b6bbb40f9a87c4eb3472 /action.c | |
parent | 7f4972b9fa132c7e5c8077f58e3e2845326884af (diff) | |
download | rsyslog-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.c | 4 |
1 files changed, 2 insertions, 2 deletions
@@ -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 */ |