Michael S. Tsirkin wrote: > 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;
Should this return 1, like the above? Not sure whether the verify_header return value is well defined beyond just boolean.

