[dpdk-dev] pmd_vmxnet3: Unintentional integer overflow
Checks
Commit Message
Fixed overflow by casting txq->cmd_ring.next2fill to uint64_t type.
Coverity issue: 143457
Fixes: 01fef6e3c181 ("net/vmxnet3: allow variable length Tx data ring")
Cc: skhare@vmware.com
cc: dev@dpdk.org
Signed-off-by: SebastianX Basierski <sebastianx.basierski@intel.com>
---
drivers/net/vmxnet3/vmxnet3_rxtx.c | 5 +++--
1 file changed, 3 insertions(+), 2 deletions(-)
Comments
On 9/19/2017 12:47 PM, SebastianX Basierski wrote:
> Fixed overflow by casting txq->cmd_ring.next2fill to uint64_t type.
>
> Coverity issue: 143457
>
> Fixes: 01fef6e3c181 ("net/vmxnet3: allow variable length Tx data ring")
> Cc: skhare@vmware.com
> cc: dev@dpdk.org
>
> Signed-off-by: SebastianX Basierski <sebastianx.basierski@intel.com>
Reviewed-by: Ferruh Yigit <ferruh.yigit@intel.com>
On 9/19/2017 3:44 PM, Ferruh Yigit wrote:
> On 9/19/2017 12:47 PM, SebastianX Basierski wrote:
>> Fixed overflow by casting txq->cmd_ring.next2fill to uint64_t type.
>>
>> Coverity issue: 143457
>>
>> Fixes: 01fef6e3c181 ("net/vmxnet3: allow variable length Tx data ring")
Cc: stable@dpdk.org
>>
>> Signed-off-by: SebastianX Basierski <sebastianx.basierski@intel.com>
>
> Reviewed-by: Ferruh Yigit <ferruh.yigit@intel.com>
Applied to dpdk-next-net/master, thanks.
@@ -504,8 +504,9 @@ vmxnet3_xmit_pkts(void *tx_queue, struct rte_mbuf **tx_pkts,
*/
gdesc = txq->cmd_ring.base + txq->cmd_ring.next2fill;
if (copy_size) {
- uint64 offset = txq->cmd_ring.next2fill *
- txq->txdata_desc_size;
+ uint64 offset =
+ (uint64)txq->cmd_ring.next2fill *
+ txq->txdata_desc_size;
gdesc->txd.addr =
rte_cpu_to_le_64(txq->data_ring.basePA +
offset);