[FFmpeg-devel] [PATCH 1/2] lavf/udp: set ttl upper bound to 255

Marton Balint cus at passwd.hu
Mon Feb 7 00:06:20 EET 2022



On Thu, 27 Jan 2022, mypopy at gmail.com wrote:

> 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

Will apply.

Thanks,
Marton


More information about the ffmpeg-devel mailing list