]> sjero.net Git - linphone/commitdiff
fix for lc->last_recv_msg_ids size limit
authorJehan Monnier <jehan.monnier@linphone.org>
Mon, 19 Nov 2012 11:22:41 +0000 (12:22 +0100)
committerJehan Monnier <jehan.monnier@linphone.org>
Mon, 19 Nov 2012 14:59:34 +0000 (15:59 +0100)
coreapi/callbacks.c

index f99c9b2247ef45f46683842bbc3e190d851e387f..134c336abe3cc946715746477b40c9b35bbb7e93 100644 (file)
@@ -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;
 }