[FFmpeg-devel] [PATCH 1/2] lavf/udp: set ttl upper bound to 255
mypopy at gmail.com
mypopy at gmail.com
Thu Jan 27 17:21:15 EET 2022
On Thu, Jan 27, 2022 at 1:09 PM "zhilizhao(赵志立)" <quinkblack at foxmail.com> wrote:
>
>
>
> > On Jan 27, 2022, at 12:22 AM, Zhao Zhili <quinkblack at foxmail.com> wrote:
> >
> > ---
> > libavformat/udp.c | 2 +-
> > 1 file changed, 1 insertion(+), 1 deletion(-)
> >
> > diff --git a/libavformat/udp.c b/libavformat/udp.c
> > index 83c042d079..b441d2ea0d 100644
> > --- a/libavformat/udp.c
> > +++ b/libavformat/udp.c
> > @@ -134,7 +134,7 @@ static const AVOption options[] = {
> > { "reuse", "explicitly allow reusing UDP sockets", OFFSET(reuse_socket), AV_OPT_TYPE_BOOL, { .i64 = -1 }, -1, 1, D|E },
> > { "reuse_socket", "explicitly allow reusing UDP sockets", OFFSET(reuse_socket), AV_OPT_TYPE_BOOL, { .i64 = -1 }, -1, 1, .flags = D|E },
> > { "broadcast", "explicitly allow or disallow broadcast destination", OFFSET(is_broadcast), AV_OPT_TYPE_BOOL, { .i64 = 0 }, 0, 1, E },
> > - { "ttl", "Time to live (multicast only)", OFFSET(ttl), AV_OPT_TYPE_INT, { .i64 = 16 }, 0, INT_MAX, E },
> > + { "ttl", "Time to live (multicast only)", OFFSET(ttl), AV_OPT_TYPE_INT, { .i64 = 16 }, 0, 255, E },
> > { "connect", "set if connect() should be called on socket", OFFSET(is_connected), AV_OPT_TYPE_BOOL, { .i64 = 0 }, 0, 1, .flags = D|E },
> > { "fifo_size", "set the UDP receiving circular buffer size, expressed as a number of packets with size of 188 bytes", OFFSET(circular_buffer_size), AV_OPT_TYPE_INT, {.i64 = 7*4096}, 0, INT_MAX, D },
> > { "overrun_nonfatal", "survive in case of UDP receiving circular buffer overrun", OFFSET(overrun_nonfatal), AV_OPT_TYPE_BOOL, {.i64 = 0}, 0, 1, D },
> > --
> > 2.29.2
> >
>
> This patchset is related to 'Fix setsockopt IP_MULTICAST_TTL on OpenBSD’.
>
> https://patchwork.ffmpeg.org/project/ffmpeg/patch/Yd5jaXBCd6GP7kBh@humpty.home.comstyle.com/
>
> Looks like it’s impossible to avoid casting int to unsigned char, so integer
> overflow/truncation must be handled. Since the maximum value of TTL is 255
> limited by IPv4/IPv6, set the upper bound of AVOption to fail early for
> invalid value.
Patchset LGTM, limited the TTL(Time to live) in IPv4 <= 255 in option
is better than coding in the function
More information about the ffmpeg-devel
mailing list