On 11/30/2015 06:46 PM, Michael S. Tsirkin wrote:
> On Mon, Nov 30, 2015 at 03:38:23PM +0800, Jason Wang wrote:
>> 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 <p...@fedoraproject.org>
>> Cc: qemu-sta...@nongnu.org
>> Signed-off-by: Jason Wang <jasow...@redhat.com>
> Reviewed-by: Michael S. Tsirkin <m...@redhat.com>

Applied to my -net. Thanks.

>
>> ---
>>  hw/net/pcnet.c | 6 ++++++
>>  1 file changed, 6 insertions(+)
>>
>> diff --git a/hw/net/pcnet.c b/hw/net/pcnet.c
>> index 309c40b..1f4a3db 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;
>> -- 
>> 2.5.0
>>


Reply via email to