瀏覽代碼

msilo: proper walk through sent list for cleanup

- reported by Bhupendra Singh
Daniel-Constantin Mierla 11 年之前
父節點
當前提交
5fd8a1bdaa
共有 1 個文件被更改,包括 4 次插入2 次删除
  1. 4 2
      modules/msilo/ms_msg_list.c

+ 4 - 2
modules/msilo/ms_msg_list.c

@@ -251,7 +251,8 @@ errorx:
  */
 int msg_list_check(msg_list ml)
 {
-	msg_list_el p0;	
+	msg_list_el p0;
+	msg_list_el p1;
 	
 	if(!ml)
 		goto errorx;
@@ -265,6 +266,7 @@ int msg_list_check(msg_list ml)
 	p0 = ml->lsent;
 	while(p0)
 	{
+		p1 = p0->next;
 		if(p0->flag & MS_MSG_DONE || p0->flag & MS_MSG_ERRO)
 		{
 			LM_DBG("mid:%d got reply\n", p0->msgid);
@@ -287,7 +289,7 @@ int msg_list_check(msg_list ml)
 			ml->ldone = p0;
 			ml->nrdone++;
 		}
-		p0 = p0->next;
+		p0 = p1;
 	}
 
 	lock_release(&ml->sem_done);