Fixed memleak when two voip blocks present in single rtcp packet.

BUG=chromium:603894

Review URL: https://codereview.webrtc.org/1901593002

Cr-Commit-Position: refs/heads/master@{#12413}
This commit is contained in:
danilchap
2016-04-18 10:54:04 -07:00
committed by Commit bot
parent 264087f45a
commit d6b851a1bd
3 changed files with 5 additions and 5 deletions

View File

@ -42,14 +42,13 @@ RTCPPacketInformation::RTCPPacketInformation()
RTCPPacketInformation::~RTCPPacketInformation()
{
delete [] applicationData;
delete VoIPMetric;
}
void
RTCPPacketInformation::AddVoIPMetric(const RTCPVoIPMetric* metric)
{
VoIPMetric = new RTCPVoIPMetric();
memcpy(VoIPMetric, metric, sizeof(RTCPVoIPMetric));
VoIPMetric.reset(new RTCPVoIPMetric());
memcpy(VoIPMetric.get(), metric, sizeof(RTCPVoIPMetric));
}
void RTCPPacketInformation::AddApplicationData(const uint8_t* data,

View File

@ -12,6 +12,7 @@
#define WEBRTC_MODULES_RTP_RTCP_SOURCE_RTCP_RECEIVER_HELP_H_
#include <list>
#include <memory>
#include <vector>
#include "webrtc/base/constructormagic.h"
@ -87,7 +88,7 @@ public:
uint32_t xr_originator_ssrc;
bool xr_dlrr_item;
RTCPVoIPMetric* VoIPMetric;
std::unique_ptr<RTCPVoIPMetric> VoIPMetric;
rtc::scoped_ptr<rtcp::TransportFeedback> transport_feedback_;

View File

@ -136,7 +136,7 @@ class RtcpReceiverTest : public ::testing::Test {
rtcp_packet_info_.rtp_timestamp = rtcpPacketInformation.rtp_timestamp;
rtcp_packet_info_.xr_dlrr_item = rtcpPacketInformation.xr_dlrr_item;
if (rtcpPacketInformation.VoIPMetric)
rtcp_packet_info_.AddVoIPMetric(rtcpPacketInformation.VoIPMetric);
rtcp_packet_info_.AddVoIPMetric(rtcpPacketInformation.VoIPMetric.get());
rtcp_packet_info_.transport_feedback_.reset(
rtcpPacketInformation.transport_feedback_.release());
return 0;