virtio_net_hdr_to_skb() refuses packets whose checksum metadata
it cannot make sense of, but the vector raw transport ignored
its return value: rejected packets went on into the stack with
their metadata unvalidated.

Propagate the failure.

Assisted-by: LLM
Signed-off-by: Michael S. Tsirkin <[email protected]>
---
 arch/um/drivers/vector_transports.c | 4 +++-
 1 file changed, 3 insertions(+), 1 deletion(-)

diff --git a/arch/um/drivers/vector_transports.c 
b/arch/um/drivers/vector_transports.c
index e1fb2a76fdff..8b7548458663 100644
--- a/arch/um/drivers/vector_transports.c
+++ b/arch/um/drivers/vector_transports.c
@@ -210,7 +210,9 @@ static int raw_verify_header(
                return 1;
 
        skb_set_network_header(skb, ETH_HLEN);
-       virtio_net_hdr_to_skb(skb, vheader, virtio_legacy_is_little_endian());
+       if (virtio_net_hdr_to_skb(skb, vheader,
+                       virtio_legacy_is_little_endian()) < 0)
+               return -1;
        return 0;
 }
 
-- 
MST


Reply via email to