xen-netback: don't produce zero-size SKB frags
authorJan Beulich <jbeulich@suse.com>
Mon, 8 Jan 2024 06:41:39 +0000 (07:41 +0100)
committerJuergen Gross <jgross@suse.com>
Mon, 8 Jan 2024 06:41:39 +0000 (07:41 +0100)
commitc7ec4f2d684e17d69bbdd7c4324db0ef5daac26a
treea9ede2eb380993373e62a9f35f6e56fb9899e0a9
parent0dd3ee31125508cd67f7e7172247f05b7fd1753a
xen-netback: don't produce zero-size SKB frags

While frontends may submit zero-size requests (wasting a precious slot),
core networking code as of at least 3ece782693c4b ("sock: skb_copy_ubufs
support for compound pages") can't deal with SKBs when they have all
zero-size fragments. Respond to empty requests right when populating
fragments; all further processing is fragment based and hence won't
encounter these empty requests anymore.

In a way this should have been that way from the beginning: When no data
is to be transferred for a particular request, there's not even a point
in validating the respective grant ref. That's no different from e.g.
passing NULL into memcpy() when at the same time the size is 0.

This is XSA-448 / CVE-2023-46838.

Cc: stable@vger.kernel.org
Signed-off-by: Jan Beulich <jbeulich@suse.com>
Reviewed-by: Juergen Gross <jgross@suse.com>
Reviewed-by: Paul Durrant <paul@xen.org>
drivers/net/xen-netback/netback.c