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 Signed-off-by: Jason Wang <jasowang@redhat.com> [BR: BSC#957162] Signed-off-by: Bruce Rogers <brogers@suse.com>
This commit is contained in:
@@ -1086,6 +1086,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;
|
||||
|
Reference in New Issue
Block a user