On 32-bit architectures, both skb_queue_len() and SKB_TRUESIZE(0) evaluate
to 32-bit values. The multiplication can overflow before being assigned to
the u64 skb_overhead variable, making the skb overhead check ineffective.
Cast skb_queue_len() to u64 so the multiplication is always performed in
64-bit arithmetic.
This issue was reported by Sashiko while reviewing another patch.
Fixes:
|
||
|---|---|---|
| .. | ||
| Kconfig | ||
| Makefile | ||
| af_vsock.c | ||
| af_vsock_tap.c | ||
| diag.c | ||
| hyperv_transport.c | ||
| virtio_transport.c | ||
| virtio_transport_common.c | ||
| vmci_transport.c | ||
| vmci_transport.h | ||
| vmci_transport_notify.c | ||
| vmci_transport_notify.h | ||
| vmci_transport_notify_qstate.c | ||
| vsock_addr.c | ||
| vsock_bpf.c | ||
| vsock_loopback.c | ||