diff --git a/webrtc/modules/rtp_rtcp/source/rtp_payload_registry.cc b/webrtc/modules/rtp_rtcp/source/rtp_payload_registry.cc index db56d789ec..95e6bdc244 100644 --- a/webrtc/modules/rtp_rtcp/source/rtp_payload_registry.cc +++ b/webrtc/modules/rtp_rtcp/source/rtp_payload_registry.cc @@ -103,6 +103,7 @@ int32_t RTPPayloadRegistry::RegisterReceivePayload( if (ModuleRTPUtility::StringCompare(payload_name, "red", 3)) { red_payload_type_ = payload_type; payload = new ModuleRTPUtility::Payload; + memset(payload, 0, sizeof(*payload)); payload->audio = false; payload->name[RTP_PAYLOAD_NAME_SIZE - 1] = 0; strncpy(payload->name, payload_name, RTP_PAYLOAD_NAME_SIZE - 1); diff --git a/webrtc/voice_engine/channel.cc b/webrtc/voice_engine/channel.cc index fdd2f6ce4c..6572f6976f 100644 --- a/webrtc/voice_engine/channel.cc +++ b/webrtc/voice_engine/channel.cc @@ -2184,6 +2184,9 @@ int32_t Channel::ReceivedRTPPacket(const int8_t* data, int32_t length) { } header.payload_type_frequency = rtp_payload_registry_->GetPayloadTypeFrequency(header.payloadType); + if (header.payload_type_frequency < 0) { + return -1; + } bool retransmitted = IsPacketRetransmitted(header); bool in_order = rtp_receiver_->InOrderPacket(header.sequenceNumber); rtp_receive_statistics_->IncomingPacket(header, static_cast(length),