Zero extra bytes of FEC recovered packet

rtc::CopyOnWriteBuffer::SetSize extends buffer with uninitialized memory by design.
It is up to the user of the rtc::CopyOnWriteBuffer to ensure it is initialized.

Bug: chromium:1403397
Change-Id: Ic0111a84bda32379770ddb1c7d24bee10d96b7a4
Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/289041
Reviewed-by: Rasmus Brandt <brandtr@webrtc.org>
Commit-Queue: Danil Chapovalov <danilchap@webrtc.org>
Cr-Commit-Position: refs/heads/main@{#38959}
This commit is contained in:
Danil Chapovalov 2022-12-23 14:17:02 +00:00 committed by WebRTC LUCI CQ
parent c6409cc887
commit f52e015239

View File

@ -573,7 +573,13 @@ bool ForwardErrorCorrection::FinishPacketRecovery(
"typical IP packet, and is thus dropped.";
return false;
}
size_t old_size = recovered_packet->pkt->data.size();
recovered_packet->pkt->data.SetSize(new_size);
data = recovered_packet->pkt->data.MutableData();
if (new_size > old_size) {
memset(data + old_size, 0, new_size - old_size);
}
// Set the SN field.
ByteWriter<uint16_t>::WriteBigEndian(&data[2], recovered_packet->seq_num);
// Set the SSRC field.