net/eth: Use correct in6_address offset in _eth_get_rss_ex_dst_addr()
authorPhilippe Mathieu-Daudé <philmd@redhat.com>
Wed, 10 Mar 2021 18:31:17 +0000 (19:31 +0100)
committerJason Wang <jasowang@redhat.com>
Mon, 22 Mar 2021 09:34:31 +0000 (17:34 +0800)
The in6_address comes after the ip6_ext_hdr_routing header,
not after the ip6_ext_hdr one. Fix the offset.

Cc: qemu-stable@nongnu.org
Reported-by: Stefano Garzarella <sgarzare@redhat.com>
Fixes: eb700029c78 ("net_pkt: Extend packet abstraction as required by e1000e functionality")
Reviewed-by: Miroslav Rezanina <mrezanin@redhat.com>
Reviewed-by: Stefano Garzarella <sgarzare@redhat.com>
Signed-off-by: Philippe Mathieu-Daudé <philmd@redhat.com>
Signed-off-by: Jason Wang <jasowang@redhat.com>
net/eth.c

index f913e4396f1d7407c468766a90a9044fbdb19188..c8babfa682765f638a68f23bc2c9d0a45f79b61d 100644 (file)
--- a/net/eth.c
+++ b/net/eth.c
@@ -419,7 +419,7 @@ _eth_get_rss_ex_dst_addr(const struct iovec *pkt, int pkt_frags,
         }
 
         bytes_read = iov_to_buf(pkt, pkt_frags,
-                                rthdr_offset + sizeof(*ext_hdr),
+                                rthdr_offset + sizeof(*rthdr),
                                 dst_addr, sizeof(*dst_addr));
 
         return bytes_read == sizeof(*dst_addr);