net: ignore packet size greater than INT_MAX

There should not be a reason for passing a packet size greater than
INT_MAX. It's usually a hint of bug somewhere, so ignore packet size
greater than INT_MAX in qemu_deliver_packet_iov()

CC: qemu-stable@nongnu.org
Reported-by: Daniel Shapira <daniel@twistlock.com>
Reviewed-by: Michael S. Tsirkin <mst@redhat.com>
Signed-off-by: Jason Wang <jasowang@redhat.com>
This commit is contained in:
Jason Wang 2018-05-30 13:16:36 +08:00
parent b1d80d12c5
commit 1592a99470

View File

@ -712,10 +712,15 @@ ssize_t qemu_deliver_packet_iov(NetClientState *sender,
void *opaque) void *opaque)
{ {
NetClientState *nc = opaque; NetClientState *nc = opaque;
size_t size = iov_size(iov, iovcnt);
int ret; int ret;
if (size > INT_MAX) {
return size;
}
if (nc->link_down) { if (nc->link_down) {
return iov_size(iov, iovcnt); return size;
} }
if (nc->receive_disabled) { if (nc->receive_disabled) {