From 02f375da420d8114216a7c19c0d99a236bdc6be0 Mon Sep 17 00:00:00 2001 From: Sergio Garcia Murillo Date: Sat, 20 Jul 2024 09:47:06 +0200 Subject: [PATCH] Check arrayview is not empty before accessing it Bug: webrtc:353764813 No-Try: True Change-Id: I873f115c13e23d827f3967bc505da4b9d1a70753 Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/357580 Reviewed-by: Sergey Silkin Commit-Queue: Danil Chapovalov Reviewed-by: Danil Chapovalov Cr-Commit-Position: refs/heads/main@{#42657} --- common_video/h264/h264_bitstream_parser.cc | 3 +++ common_video/h264/sps_vui_rewriter.cc | 4 +++- 2 files changed, 6 insertions(+), 1 deletion(-) diff --git a/common_video/h264/h264_bitstream_parser.cc b/common_video/h264/h264_bitstream_parser.cc index 38cf0ff6e6..5c0ebb83d8 100644 --- a/common_video/h264/h264_bitstream_parser.cc +++ b/common_video/h264/h264_bitstream_parser.cc @@ -307,6 +307,9 @@ H264BitstreamParser::Result H264BitstreamParser::ParseNonParameterSetNalu( } void H264BitstreamParser::ParseSlice(rtc::ArrayView slice) { + if (slice.empty()) { + return; + } H264::NaluType nalu_type = H264::ParseNaluType(slice[0]); switch (nalu_type) { case H264::NaluType::kSps: { diff --git a/common_video/h264/sps_vui_rewriter.cc b/common_video/h264/sps_vui_rewriter.cc index 07b5805148..fa824a597d 100644 --- a/common_video/h264/sps_vui_rewriter.cc +++ b/common_video/h264/sps_vui_rewriter.cc @@ -238,7 +238,9 @@ rtc::Buffer SpsVuiRewriter::ParseOutgoingBitstreamAndRewrite( nalu_index.payload_start_offset - nalu_index.start_offset); rtc::ArrayView nalu = buffer.subview( nalu_index.payload_start_offset, nalu_index.payload_size); - + if (nalu.empty()) { + continue; + } if (H264::ParseNaluType(nalu[0]) == H264::NaluType::kSps) { // Check if stream uses picture order count type 0, and if so rewrite it // to enable faster decoding. Streams in that format incur additional