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

2022-02-06 Thread Marton Balint



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

2022-01-27 Thread myp...@gmail.com
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

2022-01-26 Thread zhilizhao(赵志立)


> 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

2022-01-26 Thread Zhao Zhili
---
 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".