On 2018年09月25日 22:15, Michael S. Tsirkin wrote:
On Tue, Sep 25, 2018 at 03:23:27PM +0800, Jason Wang wrote:
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-sta...@nongnu.org
Reported-by: Daniel Shapira <dan...@twistlock.com>
Signed-off-by: Jason Wang <jasow...@redhat.com>
---
net/net.c | 7 ++++++-
1 file changed, 6 insertions(+), 1 deletion(-)
diff --git a/net/net.c b/net/net.c
index fd8efebfdb..df216e3811 100644
--- a/net/net.c
+++ b/net/net.c
@@ -712,10 +712,15 @@ ssize_t qemu_deliver_packet_iov(NetClientState *sender,
void *opaque)
{
NetClientState *nc = opaque;
+ size_t size = iov_size(iov, iovcnt);
int ret;
This adds a useless iov scan on the good path.
Can't be good for performance...
Yes, will consider some optimization in the future.
Thanks
+ if (size > INT_MAX) {
+ return size;
+ }
+
if (nc->link_down) {
- return iov_size(iov, iovcnt);
+ return size;
}
if (nc->receive_disabled) {
--
2.17.1