libice has 2 Memory leak
in case,i want to realization a keepalive stun request,so i call ice_agent_start every 2 second with same ice_agent*. in ice-checklist.c#157 darray_clear(&l->valids); darray_clear(&l->trigger); ice_candidate_components_clear(&l->components); // reset components this code will reset darray->count = 0; but never free darry. so i change this code darray_free(&l->valids); darray_free(&l->trigger); ice_candidate_components_free(&l->components);
another memory leak in ice-checklist.c #530 ice_checklist_ontimer l->timer = stun_timer_start(ICE_TIMER_INTERVAL * ice_agent_active_checklist_count(l->ice), ice_checklist_ontimer, l); checklist* l will obtain timer but never free,so i free this code in ice_checklist_ontimer#466 l = (struct ice_checklist_t*)param; locker_lock(&l->locker); assert(ICE_CHECKLIST_FROZEN != l->state); if(l->timer){ free(l->timer); l->timer = NULL; }