Fix integer overflow in rtcp::TransportFeedback::IsConsistent
Bug: webrtc:13141 Change-Id: I450d7ffbef86ce67b3e6fdde0520bdb6ac7d666c Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/231840 Reviewed-by: Åsa Persson <asapersson@webrtc.org> Commit-Queue: Danil Chapovalov <danilchap@webrtc.org> Cr-Commit-Position: refs/heads/main@{#34979}
This commit is contained in:
committed by
WebRTC LUCI CQ
parent
4d4f62f6e7
commit
e130084c68
@ -549,7 +549,7 @@ bool TransportFeedback::IsConsistent() const {
|
||||
<< num_seq_no_;
|
||||
return false;
|
||||
}
|
||||
int64_t timestamp_us = base_time_ticks_ * kBaseScaleFactor;
|
||||
int64_t timestamp_us = GetBaseTimeUs();
|
||||
auto packet_it = received_packets_.begin();
|
||||
uint16_t seq_no = base_seq_no_;
|
||||
for (DeltaSize delta_size : delta_sizes) {
|
||||
|
||||
@ -232,6 +232,15 @@ TEST(RtcpPacketTest, TransportFeedbackTwoBitVectorFull) {
|
||||
test.VerifyPacket();
|
||||
}
|
||||
|
||||
TEST(RtcpPacketTest, TransportFeedbackWithLargeBaseTimeIsConsistent) {
|
||||
TransportFeedback tb;
|
||||
constexpr int64_t kTimestampUs =
|
||||
int64_t{0x7fff'ffff} * TransportFeedback::kDeltaScaleFactor;
|
||||
tb.SetBase(/*base_sequence=*/0, /*ref_timestamp_us=*/kTimestampUs);
|
||||
tb.AddReceivedPacket(/*base_sequence=*/0, /*ref_timestamp_us=*/kTimestampUs);
|
||||
EXPECT_TRUE(tb.IsConsistent());
|
||||
}
|
||||
|
||||
TEST(RtcpPacketTest, TransportFeedbackLargeAndNegativeDeltas) {
|
||||
const uint16_t kReceived[] = {1, 2, 6, 7, 8};
|
||||
const int64_t kReceiveTimes[] = {
|
||||
|
||||
Reference in New Issue
Block a user