From mboxrd@z Thu Jan  1 00:00:00 1970
Return-Path: <bruce.richardson@intel.com>
Received: from mga05.intel.com (mga05.intel.com [192.55.52.43])
 by dpdk.org (Postfix) with ESMTP id 895161B207;
 Mon, 14 Jan 2019 15:21:41 +0100 (CET)
X-Amp-Result: UNKNOWN
X-Amp-Original-Verdict: FILE UNKNOWN
X-Amp-File-Uploaded: False
Received: from fmsmga007.fm.intel.com ([10.253.24.52])
 by fmsmga105.fm.intel.com with ESMTP/TLS/DHE-RSA-AES256-GCM-SHA384;
 14 Jan 2019 06:21:40 -0800
X-ExtLoop1: 1
X-IronPort-AV: E=Sophos;i="5.56,477,1539673200"; d="scan'208";a="114552166"
Received: from bricha3-mobl.ger.corp.intel.com ([10.237.221.54])
 by fmsmga007.fm.intel.com with SMTP; 14 Jan 2019 06:21:37 -0800
Received: by  (sSMTP sendmail emulation); Mon, 14 Jan 2019 14:21:33 +0000
Date: Mon, 14 Jan 2019 14:21:33 +0000
From: Bruce Richardson <bruce.richardson@intel.com>
To: Chaitanya Babu Talluri <tallurix.chaitanya.babu@intel.com>
Cc: dev@dpdk.org, reshma.pattan@intel.com, rmody@marvell.com,
 shshaikh@marvell.com, beilei.xing@intel.com, qi.z.zhang@intel.com,
 alejandro.lucero@netronome.com, pablo.de.lara.guarch@intel.com,
 declan.doherty@intel.com, stable@dpdk.org
Message-ID: <20190114142133.GA16996@bricha3-MOBL.ger.corp.intel.com>
References: <1547445875-24601-1-git-send-email-tallurix.chaitanya.babu@intel.com>
MIME-Version: 1.0
Content-Type: text/plain; charset=us-ascii
Content-Disposition: inline
In-Reply-To: <1547445875-24601-1-git-send-email-tallurix.chaitanya.babu@intel.com>
Organization: Intel Research and Development Ireland Ltd.
User-Agent: Mutt/1.10.1 (2018-07-13)
Subject: Re: [dpdk-dev] [PATCH] drivers: fix to replace strcat with strncat
X-BeenThere: dev@dpdk.org
X-Mailman-Version: 2.1.15
Precedence: list
List-Id: DPDK patches and discussions <dev.dpdk.org>
List-Unsubscribe: <https://mails.dpdk.org/options/dev>,
 <mailto:dev-request@dpdk.org?subject=unsubscribe>
List-Archive: <http://mails.dpdk.org/archives/dev/>
List-Post: <mailto:dev@dpdk.org>
List-Help: <mailto:dev-request@dpdk.org?subject=help>
List-Subscribe: <https://mails.dpdk.org/listinfo/dev>,
 <mailto:dev-request@dpdk.org?subject=subscribe>
X-List-Received-Date: Mon, 14 Jan 2019 14:21:42 -0000

On Mon, Jan 14, 2019 at 06:04:35AM +0000, Chaitanya Babu Talluri wrote:
> Strcat does not check the destination length and there might be
> chances of string overflow so insted of strcat, strncat is used.
> 
> Fixes: 540a211084 ("bnx2x: driver core")
> Fixes: e163c18a15 ("net/i40e: update ptype and pctype info")
> Fixes: ef28aa96e5 ("net/nfp: support multiprocess")
> Fixes: 6f4eec2565 ("test/crypto: enhance scheduler unit tests")
> Cc: stable@dpdk.org
> 
> Signed-off-by: Chaitanya Babu Talluri <tallurix.chaitanya.babu@intel.com>
> ---
>  drivers/net/bnx2x/bnx2x.c                  | 6 ++++--
>  drivers/net/i40e/i40e_ethdev.c             | 6 ++++--
>  drivers/net/nfp/nfpcore/nfp_cpp_pcie_ops.c | 8 +++++---
>  test/test/test_cryptodev.c                 | 3 ++-
>  4 files changed, 15 insertions(+), 8 deletions(-)
> 
> diff --git a/drivers/net/bnx2x/bnx2x.c b/drivers/net/bnx2x/bnx2x.c
> index 4c775c163..0e1e6447a 100644
> --- a/drivers/net/bnx2x/bnx2x.c
> +++ b/drivers/net/bnx2x/bnx2x.c
> @@ -11734,13 +11734,15 @@ static const char *get_bnx2x_flags(uint32_t flags)
>  
>  	for (i = 0; i < 5; i++)
>  		if (flags & (1 << i)) {
> -			strcat(flag_str, flag[i]);
> +			strncat(flag_str, flag[i],
> +				BNX2X_INFO_STR_MAX - strlen(flag_str) - 1);
>  			flags ^= (1 << i);
>  		}
>  	if (flags) {
>  		static char unknown[BNX2X_INFO_STR_MAX];
>  		snprintf(unknown, 32, "Unknown flag mask %x", flags);
> -		strcat(flag_str, unknown);
> +		strncat(flag_str, unknown,
> +				BNX2X_INFO_STR_MAX  - strlen(flag_str) - 1);
>  	}
>  	return flag_str;
>  }

While I believe this is correct, this (and the changes below) would be a
lot neater using strlcat function. We should perhaps look to add strlcat
alongside strlcpy for DPDK use.

/Bruce