[FFmpeg-cvslog] avformat/rtmppkt: Simplify and deobfuscate amf_tag_skip() slightly
Michael Niedermayer
git at videolan.org
Wed Jul 24 17:49:39 EEST 2024
ffmpeg | branch: release/4.3 | Michael Niedermayer <michael at niedermayer.cc> | Fri Jun 7 23:05:47 2024 +0200| [ec75ce6eded2b6229dfc559c6f3132264e95b44c] | committer: Michael Niedermayer
avformat/rtmppkt: Simplify and deobfuscate amf_tag_skip() slightly
Found while reviewing: CID1530313 Untrusted loop bound
Sponsored-by: Sovereign Tech Fund
Signed-off-by: Michael Niedermayer <michael at niedermayer.cc>
(cherry picked from commit cedbef03946625bc0f7f96e9f77ad59c512b9900)
Signed-off-by: Michael Niedermayer <michael at niedermayer.cc>
> http://git.videolan.org/gitweb.cgi/ffmpeg.git/?a=commit;h=ec75ce6eded2b6229dfc559c6f3132264e95b44c
---
libavformat/rtmppkt.c | 6 ++----
1 file changed, 2 insertions(+), 4 deletions(-)
diff --git a/libavformat/rtmppkt.c b/libavformat/rtmppkt.c
index 1eeae17337..64e014aa19 100644
--- a/libavformat/rtmppkt.c
+++ b/libavformat/rtmppkt.c
@@ -437,7 +437,6 @@ static int amf_tag_skip(GetByteContext *gb)
{
AMFDataType type;
unsigned nb = -1;
- int parse_key = 1;
if (bytestream2_get_bytes_left(gb) < 1)
return -1;
@@ -462,13 +461,12 @@ static int amf_tag_skip(GetByteContext *gb)
bytestream2_skip(gb, 10);
return 0;
case AMF_DATA_TYPE_ARRAY:
- parse_key = 0;
case AMF_DATA_TYPE_MIXEDARRAY:
nb = bytestream2_get_be32(gb);
case AMF_DATA_TYPE_OBJECT:
- while (nb-- > 0 || type != AMF_DATA_TYPE_ARRAY) {
+ while (type != AMF_DATA_TYPE_ARRAY || nb-- > 0) {
int t;
- if (parse_key) {
+ if (type != AMF_DATA_TYPE_ARRAY) {
int size = bytestream2_get_be16(gb);
if (!size) {
bytestream2_get_byte(gb);
More information about the ffmpeg-cvslog
mailing list