mirror of
https://github.com/qemu/qemu.git
synced 2024-12-04 09:13:39 +08:00
pcnet: fix rx buffer overflow(CVE-2015-7512)
Backends could provide a packet whose length is greater than buffer size. Check for this and truncate the packet to avoid rx buffer overflow in this case. Cc: Prasad J Pandit <pjp@fedoraproject.org> Cc: qemu-stable@nongnu.org Reviewed-by: Michael S. Tsirkin <mst@redhat.com> Signed-off-by: Jason Wang <jasowang@redhat.com>
This commit is contained in:
parent
837f21aacf
commit
8b98a2f071
@ -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;
|
||||
|
Loading…
Reference in New Issue
Block a user