linphone-developers
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[Linphone-developers] Memory leak on outgoing call


From: damico
Subject: [Linphone-developers] Memory leak on outgoing call
Date: Fri, 18 Apr 2008 18:37:31 +0200
User-agent: Mozilla-Thunderbird 2.0.0.9 (X11/20080110)

Hi all,

I found a little memory leak on outgoing mail: when in linphone_payload_is_supported the payload is cloned and then add it to profile. So, the function that add the payload to profile in oRTP is

void rtp_profile_set_payload(RtpProfile *prof, int idx, PayloadType *pt){
   if (idx<0 || idx>=RTP_PROFILE_MAX_PAYLOADS) {
       ortp_error("Bad index %i",idx);
       return;
   }
   prof->payload[idx]=pt;
}

That function doesn't care if prof->payload[idx] is yet fill and the flags is PAYLOAD_TYPE_ALLOCATED. When we consider the incoming call the remote profile is empty and the calls to rtp_profile_set_payload() don't generate any memory leak.

I'm proposing to fix it in oRTP by
void rtp_profile_set_payload(RtpProfile *prof, int idx, PayloadType *pt){
   PayloadType *payload;
   if (idx<0 || idx>=RTP_PROFILE_MAX_PAYLOADS) {
       ortp_error("Bad index %i",idx);
       return;
   }
   payload=rtp_profile_get_payload(prof,idx);
   if (payload!=NULL && (payload->flags & PAYLOAD_TYPE_ALLOCATED))
       payload_type_destroy(payload);
   prof->payload[idx]=pt;
}


Any comments?

Regards

--Michele




reply via email to

[Prev in Thread] Current Thread [Next in Thread]