Fix fuzzer identified crash in DecodeFramesHistory

Bug: chromium:921933,chromium:921935
Change-Id: I10f2a4783a717d9541bfc9f9bc0c76eaa2e62f30
Reviewed-on: https://webrtc-review.googlesource.com/c/117562
Commit-Queue: Ilya Nikolaevskiy <ilnik@webrtc.org>
Reviewed-by: Sergey Silkin <ssilkin@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#26258}
This commit is contained in:
Ilya Nikolaevskiy
2019-01-15 10:28:37 +01:00
committed by Commit Bot
parent ee0a85cee2
commit 49ea47b90e
2 changed files with 15 additions and 1 deletions

View File

@ -31,8 +31,12 @@ void DecodedFramesHistory::InsertDecoded(const VideoLayerFrameId& frameid,
last_decoded_frame_ = frameid;
last_decoded_frame_timestamp_ = timestamp;
if (static_cast<int>(layers_.size()) < frameid.spatial_layer + 1) {
size_t old_size = layers_.size();
layers_.resize(frameid.spatial_layer + 1);
layers_[frameid.spatial_layer].buffer.resize(window_size_);
for (size_t i = old_size; i < layers_.size(); ++i) {
layers_[i].buffer.resize(window_size_);
layers_[i].last_stored_index = 0;
}
layers_[frameid.spatial_layer].last_stored_index = frameid.picture_id;
layers_[frameid.spatial_layer].buffer[frameid.picture_id % window_size_] =
true;