net: cadence_gem: check packet size in gem_recieve
While receiving packets in 'gem_receive' routine, if Frame Check Sequence(FCS) is enabled, it copies the packet into a local buffer without checking its size. Add check to validate packet length against the buffer size to avoid buffer overflow. Reported-by: Ling Liu <liuling-it@360.cn> Signed-off-by: Prasad J Pandit <pjp@fedoraproject.org> Signed-off-by: Jason Wang <jasowang@redhat.com>
This commit is contained in:
parent
c8c6afa886
commit
244381ec19
@ -678,6 +678,10 @@ static ssize_t gem_receive(NetClientState *nc, const uint8_t *buf, size_t size)
|
||||
} else {
|
||||
unsigned crc_val;
|
||||
|
||||
if (size > sizeof(rxbuf) - sizeof(crc_val)) {
|
||||
size = sizeof(rxbuf) - sizeof(crc_val);
|
||||
}
|
||||
bytes_to_copy = size;
|
||||
/* The application wants the FCS field, which QEMU does not provide.
|
||||
* We must try and calculate one.
|
||||
*/
|
||||
|
Loading…
x
Reference in New Issue
Block a user