Hi,

Michael asked on 19 October for people to look at the ~200 open and approved
PRs that fall in their area. These two are in that set, and the reason I am
writing is that most of the files they touch have no entry in MAINTAINERS at
all, so I do not think an area owner is going to pick them up:

https://www.google.com/url?q=https://code.ffmpeg.org/FFmpeg/FFmpeg/pulls/25181&source=gmail&ust=1793441339846000&sa=E
(5 commits, approved)
https://www.google.com/url?q=https://code.ffmpeg.org/FFmpeg/FFmpeg/pulls/25485&source=gmail&ust=1793441339846000&sa=E
(3 commits, approved)

Both are green on all eleven CI platforms and both are mergeable. #25485 is
stacked on #25181; #25181 stands on its own.

They remove atoi() from the SDP attribute parsers. atoi() is undefined when
the value does not fit in an int, and glibc reaches it through strtol(), so
an
out-of-range attribute arrives at the range check already wrapped:

a=fmtp:112 sampling=YCbCr-4:2:2; width=320; height=240; depth=8
-> codec_name=rawvideo accepted, as intended
a=fmtp:112 ... depth=9
-> codec_name=unknown refused, as intended
a=fmtp:112 ... depth=4294967304
-> codec_name=rawvideo refused nowhere

The sender never offered depth 8. The series adds ff_parse_bounded_int(),
applies it to nineteen call sites across rtpdec_h264, rtpdec_xiph,
rtpdec_rfc4175, rtpdec_opus, rtpdec_ilbc, rtpdec_amr, rtpdec_latm,
rtpdec_hevc, rtpdec_av1 and rdt, adds FATE coverage, and teaches
tools/patcheck to warn about new atoi() calls.

One behaviour change, which I would rather state here than have found after
the fact: an empty numeric value used to reach the parser as 0 and now
produces an error, and ff_parse_fmtp() stops on the first error, so the rest
of the fmtp line goes with it.

a=fmtp:96 cpresent=; config=40002320 -> "Invalid cpresent in SDP", no
extradata
a=fmtp:96 cpresent=0; config=40002320 -> extradata_size=3

An empty value is malformed under RFC 3016 and I would rather not
reintroduce
the silent zero this series exists to remove, and I have no capture of a
sender that emits one. The line-abort in ff_parse_fmtp() itself predates the
series. If the lenient reading is preferred I will send it separately.

The MAINTAINERS situation, for whoever wants to take it: of the files
touched,
only rdt.c (Ronald S. Bultje) and rtpdec_hevc.c (Thomas Volkert) are listed.
rtpdec_h264.c, rtpdec_xiph.c, rtpdec_rfc4175.c, rtpdec_opus.c,
rtpdec_ilbc.c,
rtpdec_amr.c, rtpdec_latm.c, rtpdec_av1.c, utils.c and internal.h are not.

Happy to rebase, split or drop any part of it.

Regards,
Furkan Efe Can
_______________________________________________
ffmpeg-devel mailing list -- [email protected]
To unsubscribe send an email to [email protected]

Reply via email to