Message ID | 1547878852-22081-1-git-send-email-laoar.shao@gmail.com |
---|---|
State | Changes Requested |
Delegated to: | BPF Maintainers |
Headers | show |
Series | [bpf-next] bpf: use the proper optlen when doing strncpy in bpf_getsockopt() | expand |
On Sat, Jan 19, 2019 at 02:20:52PM +0800, Yafang Shao wrote: > As the last character of optval will be set with 0, so just copying > (optlen - 1) characters is enough. I am not sure this optimization is needed but I think it will make it more consistent with the bpf_setsockopt() above. Acked-by: Martin KaFai Lau <kafai@fb.com> Cc: Lawrence Brakmo <brakmo@fb.com> > > Signed-off-by: Yafang Shao <laoar.shao@gmail.com> > --- > net/core/filter.c | 2 +- > 1 file changed, 1 insertion(+), 1 deletion(-) > > diff --git a/net/core/filter.c b/net/core/filter.c > index 447dd1b..7a4de22 100644 > --- a/net/core/filter.c > +++ b/net/core/filter.c > @@ -4262,7 +4262,7 @@ static unsigned long bpf_xdp_copy(void *dst_buff, const void *src_buff, > > if (!icsk->icsk_ca_ops || optlen <= 1) > goto err_clear; > - strncpy(optval, icsk->icsk_ca_ops->name, optlen); > + strncpy(optval, icsk->icsk_ca_ops->name, optlen - 1); > optval[optlen - 1] = 0; > break; > case TCP_SAVED_SYN: > -- > 1.8.3.1 >
On 1/22/19, 10:05 AM, "Martin Lau" <kafai@fb.com> wrote: On Sat, Jan 19, 2019 at 02:20:52PM +0800, Yafang Shao wrote: > As the last character of optval will be set with 0, so just copying > (optlen - 1) characters is enough. I am not sure this optimization is needed but I think it will make it more consistent with the bpf_setsockopt() above. Acked-by: Martin KaFai Lau <kafai@fb.com> Cc: Lawrence Brakmo <brakmo@fb.com> Acked-by: Lawrence Brakmo <brakmo@fb.com> > > Signed-off-by: Yafang Shao <laoar.shao@gmail.com> > --- > net/core/filter.c | 2 +- > 1 file changed, 1 insertion(+), 1 deletion(-) > > diff --git a/net/core/filter.c b/net/core/filter.c > index 447dd1b..7a4de22 100644 > --- a/net/core/filter.c > +++ b/net/core/filter.c > @@ -4262,7 +4262,7 @@ static unsigned long bpf_xdp_copy(void *dst_buff, const void *src_buff, > > if (!icsk->icsk_ca_ops || optlen <= 1) > goto err_clear; > - strncpy(optval, icsk->icsk_ca_ops->name, optlen); > + strncpy(optval, icsk->icsk_ca_ops->name, optlen - 1); > optval[optlen - 1] = 0; > break; > case TCP_SAVED_SYN: > -- > 1.8.3.1 >
On 01/22/2019 07:04 PM, Martin Lau wrote: > On Sat, Jan 19, 2019 at 02:20:52PM +0800, Yafang Shao wrote: >> As the last character of optval will be set with 0, so just copying >> (optlen - 1) characters is enough. > I am not sure this optimization is needed but I think it will Yeah, it's totally fine as is.
diff --git a/net/core/filter.c b/net/core/filter.c index 447dd1b..7a4de22 100644 --- a/net/core/filter.c +++ b/net/core/filter.c @@ -4262,7 +4262,7 @@ static unsigned long bpf_xdp_copy(void *dst_buff, const void *src_buff, if (!icsk->icsk_ca_ops || optlen <= 1) goto err_clear; - strncpy(optval, icsk->icsk_ca_ops->name, optlen); + strncpy(optval, icsk->icsk_ca_ops->name, optlen - 1); optval[optlen - 1] = 0; break; case TCP_SAVED_SYN:
As the last character of optval will be set with 0, so just copying (optlen - 1) characters is enough. Signed-off-by: Yafang Shao <laoar.shao@gmail.com> --- net/core/filter.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-)