lists.openwall.net | lists / announce owl-users owl-dev john-users john-dev passwdqc-users yescrypt popa3d-users / oss-security kernel-hardening musl sabotage tlsify passwords / crypt-dev xvendor / Bugtraq Full-Disclosure linux-kernel linux-netdev linux-ext4 linux-hardening linux-cve-announce PHC | |
Open Source and information security mailing list archives
| ||
|
Date: Tue, 1 Oct 2019 07:31:05 -0700 From: Josh Hunt <johunt@...mai.com> To: Alexander Duyck <alexander.duyck@...il.com> Cc: David Miller <davem@...emloft.net>, Netdev <netdev@...r.kernel.org>, Eric Dumazet <edumazet@...gle.com>, Willem de Bruijn <willemb@...gle.com>, "Duyck, Alexander H" <alexander.h.duyck@...el.com> Subject: Re: [PATCH 1/2] udp: fix gso_segs calculations On 9/30/19 4:51 PM, Alexander Duyck wrote: > On Mon, Sep 30, 2019 at 3:15 PM Josh Hunt <johunt@...mai.com> wrote: >> >> Commit dfec0ee22c0a ("udp: Record gso_segs when supporting UDP segmentation offload") >> added gso_segs calculation, but incorrectly got sizeof() the pointer and >> not the underlying data type. It also does not account for v6 UDP GSO segs. >> >> Fixes: dfec0ee22c0a ("udp: Record gso_segs when supporting UDP segmentation offload") >> Signed-off-by: Josh Hunt <johunt@...mai.com> >> --- >> net/ipv4/udp.c | 2 +- >> net/ipv6/udp.c | 2 ++ >> 2 files changed, 3 insertions(+), 1 deletion(-) >> >> diff --git a/net/ipv4/udp.c b/net/ipv4/udp.c >> index cf755156a684..be98d0b8f014 100644 >> --- a/net/ipv4/udp.c >> +++ b/net/ipv4/udp.c >> @@ -856,7 +856,7 @@ static int udp_send_skb(struct sk_buff *skb, struct flowi4 *fl4, >> >> skb_shinfo(skb)->gso_size = cork->gso_size; >> skb_shinfo(skb)->gso_type = SKB_GSO_UDP_L4; >> - skb_shinfo(skb)->gso_segs = DIV_ROUND_UP(len - sizeof(uh), >> + skb_shinfo(skb)->gso_segs = DIV_ROUND_UP(len - sizeof(*uh), >> cork->gso_size); >> goto csum_partial; >> } >> diff --git a/net/ipv6/udp.c b/net/ipv6/udp.c >> index aae4938f3dea..eb9a9934ac05 100644 >> --- a/net/ipv6/udp.c >> +++ b/net/ipv6/udp.c >> @@ -1143,6 +1143,8 @@ static int udp_v6_send_skb(struct sk_buff *skb, struct flowi6 *fl6, >> >> skb_shinfo(skb)->gso_size = cork->gso_size; >> skb_shinfo(skb)->gso_type = SKB_GSO_UDP_L4; >> + skb_shinfo(skb)->gso_segs = DIV_ROUND_UP(len - sizeof(*uh), >> + cork->gso_size); >> goto csum_partial; >> } >> > > Fix looks good to me. > > You might also want to add the original commit since you are also > addressing IPv6 changes which are unrelated to my commit that your > referenced: > Fixes: bec1f6f69736 ("udp: generate gso with UDP_SEGMENT") > > Reviewed-by: Alexander Duyck <alexander.h.duyck@...ux.intel.com> > Thanks for the review Alex. I will make those changes and spin a v2. Thanks! Josh
Powered by blists - more mailing lists