diff --git a/hw/net/pcnet.c b/hw/net/pcnet.c index 309c40bc31cf385b03fb3135b9e5b7da2e7c55a4..1f4a3dbe49ed93658564c240a6f6b9ac2c4344ec 100644 --- a/hw/net/pcnet.c +++ b/hw/net/pcnet.c @@ -1064,6 +1064,12 @@ ssize_t pcnet_receive(NetClientState *nc, const uint8_t *buf, size_t size_) int pktcount = 0; if (!s->looptest) { + if (size > 4092) { +#ifdef PCNET_DEBUG_RMD + fprintf(stderr, "pcnet: truncates rx packet.\n"); +#endif + size = 4092; + } memcpy(src, buf, size); /* no need to compute the CRC */ src[size] = 0;