From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from dpdk.org (dpdk.org [92.243.14.124]) by inbox.dpdk.org (Postfix) with ESMTP id E9501A0562; Tue, 31 Mar 2020 08:58:36 +0200 (CEST) Received: from [92.243.14.124] (localhost [127.0.0.1]) by dpdk.org (Postfix) with ESMTP id 8B9F91BFC6; Tue, 31 Mar 2020 08:58:35 +0200 (CEST) Received: from mga02.intel.com (mga02.intel.com [134.134.136.20]) by dpdk.org (Postfix) with ESMTP id E526E2C15; Tue, 31 Mar 2020 08:58:32 +0200 (CEST) IronPort-SDR: 85PgULoqWmFgH45rk3+9jZf+fKn7PmUO1VoJOgwyHtvv/KOzZQAvFTiSTysHnh3hxbLFCV1KIa yAjNtGPcYq8Q== X-Amp-Result: SKIPPED(no attachment in message) X-Amp-File-Uploaded: False Received: from orsmga003.jf.intel.com ([10.7.209.27]) by orsmga101.jf.intel.com with ESMTP/TLS/ECDHE-RSA-AES256-GCM-SHA384; 30 Mar 2020 23:58:31 -0700 IronPort-SDR: xrqv1Zme2hhHEDblIFws+eP19ZWjkCPWbgmaMYDLT91fdtaYpe2avzUfrRzaozJWIh9Sb3wsXr HYvo70WBRo8w== X-ExtLoop1: 1 X-IronPort-AV: E=Sophos;i="5.72,327,1580803200"; d="scan'208";a="248959187" Received: from npg-dpdk-haiyue-1.sh.intel.com ([10.67.119.213]) by orsmga003.jf.intel.com with ESMTP; 30 Mar 2020 23:58:29 -0700 From: Haiyue Wang To: dev@dpdk.org, xiaolong.ye@intel.com, qi.z.zhang@intel.com, qiming.yang@intel.com, beilei.xing@intel.com Cc: Haiyue Wang , stable@dpdk.org Date: Tue, 31 Mar 2020 14:50:34 +0800 Message-Id: <20200331065034.4853-1-haiyue.wang@intel.com> X-Mailer: git-send-email 2.26.0 MIME-Version: 1.0 Content-Transfer-Encoding: 8bit Subject: [dpdk-dev] [PATCH v1] net/ice/base: check memory pointer before copying X-BeenThere: dev@dpdk.org X-Mailman-Version: 2.1.15 Precedence: list List-Id: DPDK patches and discussions List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: dev-bounces@dpdk.org Sender: "dev" The ice_memdup doesn't check the new allocated memory pointer, it calls the rte_memcpy directly. It should check it. Fixes: 5f0978e96220 ("net/ice/base: add OS specific implementation") Cc: stable@dpdk.org Signed-off-by: Haiyue Wang --- drivers/net/ice/base/ice_osdep.h | 16 +++++++++++++++- 1 file changed, 15 insertions(+), 1 deletion(-) diff --git a/drivers/net/ice/base/ice_osdep.h b/drivers/net/ice/base/ice_osdep.h index a4a2994c7..88c2a65be 100644 --- a/drivers/net/ice/base/ice_osdep.h +++ b/drivers/net/ice/base/ice_osdep.h @@ -24,6 +24,8 @@ #include #include +#include "ice_alloc.h" + #include "../ice_logs.h" #ifndef __INTEL_NET_BASE_OSDEP__ @@ -193,7 +195,6 @@ struct ice_virt_mem { #define ice_memset(a, b, c, d) memset((a), (b), (c)) #define ice_memcpy(a, b, c, d) rte_memcpy((a), (b), (c)) -#define ice_memdup(a, b, c, d) rte_memcpy(ice_malloc(a, c), b, c) /* SW spinlock */ struct ice_lock { @@ -225,6 +226,19 @@ ice_destroy_lock(__attribute__((unused)) struct ice_lock *sp) struct ice_hw; +static __rte_always_inline void * +ice_memdup(__rte_unused struct ice_hw *hw, const void *src, size_t size, + __rte_unused enum ice_memcpy_type dir) +{ + void *p; + + p = ice_malloc(hw, size); + if (p) + rte_memcpy(p, src, size); + + return p; +} + static inline void * ice_alloc_dma_mem(__attribute__((unused)) struct ice_hw *hw, struct ice_dma_mem *mem, u64 size) -- 2.26.0