From: Jehan Monnier Date: Mon, 19 Nov 2012 11:22:41 +0000 (+0100) Subject: fix for lc->last_recv_msg_ids size limit X-Git-Url: http://sjero.net/git/?p=linphone;a=commitdiff_plain;h=fb9fa2aa00c65826f51532a0478a6a2704919ca7 fix for lc->last_recv_msg_ids size limit --- diff --git a/coreapi/callbacks.c b/coreapi/callbacks.c index f99c9b22..134c336a 100644 --- a/coreapi/callbacks.c +++ b/coreapi/callbacks.c @@ -781,19 +781,21 @@ static void refer_received(Sal *sal, SalOp *op, const char *referto){ static bool_t is_duplicate_msg(LinphoneCore *lc, const char *msg_id){ MSList *elem=lc->last_recv_msg_ids; + MSList *tail=NULL; int i; bool_t is_duplicate=FALSE; for(i=0;elem!=NULL;elem=elem->next,i++){ if (strcmp((const char*)elem->data,msg_id)==0){ is_duplicate=TRUE; } + tail=elem; } if (!is_duplicate){ lc->last_recv_msg_ids=ms_list_prepend(lc->last_recv_msg_ids,ms_strdup(msg_id)); } if (i>=10){ - ms_free(elem->data); - ms_list_remove_link(lc->last_recv_msg_ids,elem); + ms_free(tail->data); + lc->last_recv_msg_ids=ms_list_remove_link(lc->last_recv_msg_ids,tail); } return is_duplicate; }