In ParseNonParameterSetNalu check BitstreamReader::Ok before returning early
~BitstreamReader() DCHECKs that the last read has been verified, so all paths where we may leave the slice_reader instance's scope early must be guarded by an Ok(). Bug: None Change-Id: Ic67f87c04d1f042392c1dd6a066fdccf26e19003 Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/369540 Reviewed-by: Sergey Silkin <ssilkin@webrtc.org> Commit-Queue: Danil Chapovalov <danilchap@webrtc.org> Reviewed-by: Tomas Gunnarsson <tommi@webrtc.org> Reviewed-by: Danil Chapovalov <danilchap@webrtc.org> Cr-Commit-Position: refs/heads/main@{#43463}
This commit is contained in:
parent
4060745995
commit
4a6a7465d0
@ -118,13 +118,15 @@ H264BitstreamParser::Result H264BitstreamParser::ParseNonParameterSetNalu(
|
||||
if (slice_reader.Read<bool>()) {
|
||||
// num_ref_idx_l0_active_minus1: ue(v)
|
||||
num_ref_idx_l0_active_minus1 = slice_reader.ReadExponentialGolomb();
|
||||
if (num_ref_idx_l0_active_minus1 > H264::kMaxReferenceIndex) {
|
||||
if (!slice_reader.Ok() ||
|
||||
num_ref_idx_l0_active_minus1 > H264::kMaxReferenceIndex) {
|
||||
return kInvalidStream;
|
||||
}
|
||||
if (slice_type == H264::SliceType::kB) {
|
||||
// num_ref_idx_l1_active_minus1: ue(v)
|
||||
num_ref_idx_l1_active_minus1 = slice_reader.ReadExponentialGolomb();
|
||||
if (num_ref_idx_l1_active_minus1 > H264::kMaxReferenceIndex) {
|
||||
if (!slice_reader.Ok() ||
|
||||
num_ref_idx_l1_active_minus1 > H264::kMaxReferenceIndex) {
|
||||
return kInvalidStream;
|
||||
}
|
||||
}
|
||||
|
||||
Loading…
x
Reference in New Issue
Block a user