From 79389415997817898105a880290798290c69a90b Mon Sep 17 00:00:00 2001 From: Bogdan-Andrei Iancu Date: Fri, 20 Sep 2013 18:41:38 +0300 Subject: [PATCH] - fixed updating the index of the last DEL operation - this is essential for deciding which lumps must be skipped (as overlapping with delete parts of the message) Credits go to Nick Altmann for reporting and helping with troubleshooting. Closes issue #79 --- msg_translator.c | 7 ++----- 1 file changed, 2 insertions(+), 5 deletions(-) diff --git a/msg_translator.c b/msg_translator.c index da8fa87ac6c..c4cee2d647d 100644 --- a/msg_translator.c +++ b/msg_translator.c @@ -646,7 +646,6 @@ int lumps_len(struct sip_msg* msg, struct lump* lumps, LM_CRIT("invalid op for data lump (%x)\n", r->op); } } - LM_DBG("new len is %d after before\n",new_len); skip_before: if (only_before) continue; @@ -672,7 +671,6 @@ int lumps_len(struct sip_msg* msg, struct lump* lumps, default: LM_CRIT("op for data lump (%x)\n", r->op); } - LM_DBG("new len is %d after main\n",new_len); for (r=t->after;r;r=r->after){ switch(r->op){ case LUMP_ADD: @@ -697,7 +695,6 @@ int lumps_len(struct sip_msg* msg, struct lump* lumps, LM_CRIT("invalid op for data lump (%x)\n", r->op); } } - LM_DBG("new len is %d after after\n",new_len); skip_after: ; /* to make gcc 3.* happy */ } @@ -1067,9 +1064,9 @@ void process_lumps( struct sip_msg* msg, memcpy(new_buf+offset, orig+s_offset,size); offset+=size; s_offset+=size; - if (t->op==LUMP_DEL) - last_del=t->u.offset; } + if (t->op==LUMP_DEL) + last_del=t->u.offset; /* process before */ for(r=t->before;r;r=r->before){ switch (r->op){