From c030585a630902ddd56b303ede1bfd8612036579 Mon Sep 17 00:00:00 2001 From: Rainer Gerhards Date: Tue, 25 Sep 2012 15:35:08 +0200 Subject: fix invalid state handling during action execution could lead to execution of not-to-be-executed action. very recent regression. --- action.c | 2 +- runtime/batch.h | 4 ++-- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/action.c b/action.c index 8a3d8920..9c06f61e 100644 --- a/action.c +++ b/action.c @@ -1658,7 +1658,7 @@ doSubmitToActionQNotAllMarkBatch(action_t *pAction, batch_t *pBatch) copyActive(pBatch); for(i = 0 ; i < batchNumMsgs(pBatch) ; ++i) { - if(!pBatch->active[i]) + if((pBatch->pElem[i].state == BATCH_STATE_DISC) || !pBatch->active[i]) continue; if(now == 0) { now = datetime.GetTime(NULL); /* good time call - the only one done */ diff --git a/runtime/batch.h b/runtime/batch.h index fdacb8e2..f743c188 100644 --- a/runtime/batch.h +++ b/runtime/batch.h @@ -129,8 +129,8 @@ batchSetElemState(batch_t *pBatch, int i, batch_state_t newState) { */ static inline int batchIsValidElem(batch_t *pBatch, int i) { - return( (pBatch->active == NULL || pBatch->active[i]) - && pBatch->pElem[i].state != BATCH_STATE_DISC); + return( (pBatch->pElem[i].state != BATCH_STATE_DISC) + && (pBatch->active == NULL || pBatch->active[i])); } -- cgit v1.2.3