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 89E69A0540; Mon, 13 Jul 2020 17:33:29 +0200 (CEST) Received: from [92.243.14.124] (localhost [127.0.0.1]) by dpdk.org (Postfix) with ESMTP id EABCA1D728; Mon, 13 Jul 2020 17:33:28 +0200 (CEST) Received: from mga05.intel.com (mga05.intel.com [192.55.52.43]) by dpdk.org (Postfix) with ESMTP id 578DA1D726 for ; Mon, 13 Jul 2020 17:33:27 +0200 (CEST) IronPort-SDR: m9wXHkbRoTlEjjras77e+Lc2lXiPQkh4doYP50mHnjXtfCrAmBr7h83g19QMI0mNt5y6yngUEK BsA8iR3GFh6w== X-IronPort-AV: E=McAfee;i="6000,8403,9681"; a="233494258" X-IronPort-AV: E=Sophos;i="5.75,347,1589266800"; d="scan'208";a="233494258" X-Amp-Result: SKIPPED(no attachment in message) X-Amp-File-Uploaded: False Received: from orsmga005.jf.intel.com ([10.7.209.41]) by fmsmga105.fm.intel.com with ESMTP/TLS/ECDHE-RSA-AES256-GCM-SHA384; 13 Jul 2020 08:33:26 -0700 IronPort-SDR: 8HUzU2QyFmuK7vUkcFqakm5HhXqnvLqvx8fPU31U/qAQCcZeZnnNry/XcanjYhiK0HC5uso2ij 3PRx7L94pXNA== X-IronPort-AV: E=Sophos;i="5.75,347,1589266800"; d="scan'208";a="459333742" Received: from bricha3-mobl.ger.corp.intel.com ([10.249.32.149]) by orsmga005-auth.jf.intel.com with ESMTP/TLS/ECDHE-RSA-AES256-SHA; 13 Jul 2020 08:33:24 -0700 Date: Mon, 13 Jul 2020 16:33:21 +0100 From: Bruce Richardson To: Anatoly Burakov Cc: dev@dpdk.org, David Hunt , reshma.pattan@intel.com Message-ID: <20200713153321.GJ694@bricha3-MOBL.ger.corp.intel.com> References: <42bebf7cebd2b635a60b626faf605df6d8a277c1.1594652063.git.anatoly.burakov@intel.com> MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline In-Reply-To: <42bebf7cebd2b635a60b626faf605df6d8a277c1.1594652063.git.anatoly.burakov@intel.com> Subject: Re: [dpdk-dev] [PATCH v2 1/2] power: fix power management env detection 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" On Mon, Jul 13, 2020 at 03:54:27PM +0100, Anatoly Burakov wrote: > Anything coming from sysfs has a newline at the end. Cut it off before > comparing the strings. > > Fixes: 20ab67608a39 ("power: add environment capability probing") > > Signed-off-by: Anatoly Burakov > Acked-by: David Hunt > --- > lib/librte_power/power_common.c | 8 ++++++++ > 1 file changed, 8 insertions(+) > > diff --git a/lib/librte_power/power_common.c b/lib/librte_power/power_common.c > index 59023d986b..22b016ca9d 100644 > --- a/lib/librte_power/power_common.c > +++ b/lib/librte_power/power_common.c > @@ -15,6 +15,7 @@ int > cpufreq_check_scaling_driver(const char *driver_name) > { > unsigned int lcore_id = 0; /* always check core 0 */ > + size_t end_idx; > char fullpath[PATH_MAX]; > char readbuf[PATH_MAX]; > char *s; > @@ -39,6 +40,13 @@ cpufreq_check_scaling_driver(const char *driver_name) > if (s == NULL) > return 0; > > + /* when read from sysfs, driver name has an extra newline at the end */ > + end_idx = strnlen(readbuf, sizeof(readbuf)); > + /* prevent underflow if len is zero */ > + if (end_idx > 0) > + end_idx--; > + readbuf[end_idx] = '\0'; > + Would it not be safer to add " && readbuf[end_idx - 1] == '\n'" to the condition, to check that it's terminated as expected? Theoretically if we had a long string returned which was truncated, or only just fit, there would not be a '\n' at the end. /Bruce