From a533e00fa04aa1b7fecb55010816e268814aacc5 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Niels=20M=C3=B6ller?= Date: Tue, 26 Mar 2019 13:14:30 +0100 Subject: [PATCH] Reland "Replace RTPHeader memset with assignment from a fresh object." This is a reland of 50686460caad4d13283c550df01690316e7cb934 Original change's description: > Replace RTPHeader memset with assignment from a fresh object. > > Since RTPHeader contains std::string members, memset results in > undefined behavior, with memory leaks being the best case. > > Bug: chromium:945598 > Change-Id: I5c04e6b2fb08816fc036abfbb6ba7aaf19469687 > Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/129720 > Reviewed-by: Danil Chapovalov > Commit-Queue: Niels Moller > Cr-Commit-Position: refs/heads/master@{#27282} Bug: chromium:945598 Change-Id: Id75c1fa022575b76a1b03f1213f5017d158d9c2d Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/128875 Reviewed-by: Danil Chapovalov Reviewed-by: Henrik Lundin Commit-Queue: Niels Moller Cr-Commit-Position: refs/heads/master@{#27290} --- modules/audio_coding/neteq/tools/packet.cc | 14 +------------- modules/rtp_rtcp/source/rtp_header_parser.cc | 2 +- 2 files changed, 2 insertions(+), 14 deletions(-) diff --git a/modules/audio_coding/neteq/tools/packet.cc b/modules/audio_coding/neteq/tools/packet.cc index 0e7951b6e3..4e2102da2d 100644 --- a/modules/audio_coding/neteq/tools/packet.cc +++ b/modules/audio_coding/neteq/tools/packet.cc @@ -163,19 +163,7 @@ bool Packet::ParseHeader(const RtpHeaderParser& parser) { } void Packet::CopyToHeader(RTPHeader* destination) const { - destination->markerBit = header_.markerBit; - destination->payloadType = header_.payloadType; - destination->sequenceNumber = header_.sequenceNumber; - destination->timestamp = header_.timestamp; - destination->ssrc = header_.ssrc; - destination->numCSRCs = header_.numCSRCs; - destination->paddingLength = header_.paddingLength; - destination->headerLength = header_.headerLength; - destination->payload_type_frequency = header_.payload_type_frequency; - memcpy(&destination->arrOfCSRCs, &header_.arrOfCSRCs, - sizeof(header_.arrOfCSRCs)); - memcpy(&destination->extension, &header_.extension, - sizeof(header_.extension)); + *destination = header_; } } // namespace test diff --git a/modules/rtp_rtcp/source/rtp_header_parser.cc b/modules/rtp_rtcp/source/rtp_header_parser.cc index 1d937f80bd..65431d1397 100644 --- a/modules/rtp_rtcp/source/rtp_header_parser.cc +++ b/modules/rtp_rtcp/source/rtp_header_parser.cc @@ -64,7 +64,7 @@ bool RtpHeaderParserImpl::Parse(const uint8_t* packet, size_t length, RTPHeader* header) const { RtpUtility::RtpHeaderParser rtp_parser(packet, length); - memset(header, 0, sizeof(*header)); + *header = RTPHeader(); RtpHeaderExtensionMap map; {