qemu-devel
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: [Qemu-devel] [PATCH] net: vmxnet: check fragments count at pkt initi


From: Dmitry Fleytman
Subject: Re: [Qemu-devel] [PATCH] net: vmxnet: check fragments count at pkt initialisation
Date: Thu, 11 Aug 2016 11:15:48 +0300

> On 11 Aug 2016, at 11:08 AM, Dmitry Fleytman <address@hidden> wrote:
> 
> 
> Acked-by: Dmitry Fleytman <address@hidden>

Oops, please ignore this ACK, I replied to the wrong e-mail.

As far as I see max_frags for VMXNET3 is a size of device’s TX ring so this 
will always assert.

I don’t think we need this limitation in the device code. Maximum number of 
fragments is an internal knowledge of network backend.

~Dmitry

> 
>> On 10 Aug 2016, at 23:38 PM, P J P <address@hidden> wrote:
>> 
>> From: Li Qiang <address@hidden>
>> 
>> When net transport abstraction layer initialises the pkt,
>> the maximum fragmentation count is not checked. This could
>> lead to an integer overflow causing a NULL pointer dereference.
>> Add check to avoid it.
>> 
>> Reported-by: Li Qiang <address@hidden>
>> Signed-off-by: Prasad J Pandit <address@hidden>
>> ---
>> hw/net/net_tx_pkt.c | 3 +++
>> 1 file changed, 3 insertions(+)
>> 
>> diff --git a/hw/net/net_tx_pkt.c b/hw/net/net_tx_pkt.c
>> index 53dfaa2..7ea3c17 100644
>> --- a/hw/net/net_tx_pkt.c
>> +++ b/hw/net/net_tx_pkt.c
>> @@ -58,9 +58,12 @@ struct NetTxPkt {
>>    bool is_loopback;
>> };
>> 
>> +#define NET_PKT_MAX_FRAGS    16  /* ref: MAX_SKB_FRAGS in kernel driver */
>> +
>> void net_tx_pkt_init(struct NetTxPkt **pkt, PCIDevice *pci_dev,
>>    uint32_t max_frags, bool has_virt_hdr)
>> {
>> +    assert(max_frags <= NET_PKT_MAX_FRAGS);
>>    struct NetTxPkt *p = g_malloc0(sizeof *p);
>> 
>>    p->pci_dev = pci_dev;
>> -- 
>> 2.5.5
>> 
> 




reply via email to

[Prev in Thread] Current Thread [Next in Thread]