Re: [FFmpeg-devel] [PATCH 1/2] lavf/udp: set ttl upper bound to 255
On Thu, 27 Jan 2022, myp...@gmail.com wrote: On Thu, Jan 27, 2022 at 1:09 PM "zhilizhao(赵志立)" wrote: > On Jan 27, 2022, at 12:22 AM, Zhao Zhili 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/yd5jaxbcd6gp7...@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 ___ ffmpeg-devel mailing list ffmpeg-devel@ffmpeg.org https://ffmpeg.org/mailman/listinfo/ffmpeg-devel To unsubscribe, visit link above, or email ffmpeg-devel-requ...@ffmpeg.org with subject "unsubscribe".
Re: [FFmpeg-devel] [PATCH 1/2] lavf/udp: set ttl upper bound to 255
On Thu, Jan 27, 2022 at 1:09 PM "zhilizhao(赵志立)" wrote: > > > > > On Jan 27, 2022, at 12:22 AM, Zhao Zhili 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/yd5jaxbcd6gp7...@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 ___ ffmpeg-devel mailing list ffmpeg-devel@ffmpeg.org https://ffmpeg.org/mailman/listinfo/ffmpeg-devel To unsubscribe, visit link above, or email ffmpeg-devel-requ...@ffmpeg.org with subject "unsubscribe".
Re: [FFmpeg-devel] [PATCH 1/2] lavf/udp: set ttl upper bound to 255
> On Jan 27, 2022, at 12:22 AM, Zhao Zhili 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/yd5jaxbcd6gp7...@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. ___ ffmpeg-devel mailing list ffmpeg-devel@ffmpeg.org https://ffmpeg.org/mailman/listinfo/ffmpeg-devel To unsubscribe, visit link above, or email ffmpeg-devel-requ...@ffmpeg.org with subject "unsubscribe".
[FFmpeg-devel] [PATCH 1/2] lavf/udp: set ttl upper bound to 255
--- 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 ___ ffmpeg-devel mailing list ffmpeg-devel@ffmpeg.org https://ffmpeg.org/mailman/listinfo/ffmpeg-devel To unsubscribe, visit link above, or email ffmpeg-devel-requ...@ffmpeg.org with subject "unsubscribe".