app/testbbdev: fix sprintf with snprintf

Message ID 1549264554-2501-1-git-send-email-pallantlax.poornima@intel.com
State New
Delegated to: Thomas Monjalon
Headers show
Series
  • app/testbbdev: fix sprintf with snprintf
Related show

Checks

Context Check Description
ci/Intel-compilation success Compilation OK
ci/mellanox-Performance-Testing success Performance Testing PASS
ci/intel-Performance-Testing success Performance Testing PASS
ci/checkpatch success coding style OK

Commit Message

Pallantla Poornima Feb. 4, 2019, 7:15 a.m.
sprintf function is not secure as it doesn't check the length of string.
More secure function snprintf is used.

Fixes: f714a18885 ("app/testbbdev: add test application for bbdev")
Cc: stable@dpdk.org

Signed-off-by: Pallantla Poornima <pallantlax.poornima@intel.com>
---
 app/test-bbdev/test_bbdev.c | 8 ++++----
 1 file changed, 4 insertions(+), 4 deletions(-)

Comments

Ferruh Yigit Feb. 8, 2019, 2:13 p.m. | #1
On 2/4/2019 7:15 AM, Pallantla Poornima wrote:
> @@ -825,7 +825,7 @@
> 
>  test_bbdev_driver_init(void)
> 
> TEST_ASSERT_FAIL(rte_bbdev_release(NULL),
> "Failed to uninitialize bbdev driver with NULL bbdev");
> - sprintf(name_tmp, "%s", "invalid_name");
> + snprintf(name_tmp, sizeof(name_tmp), "%s", "invalid_name");
> dev2 = rte_bbdev_get_named_dev(name_tmp);
> TEST_ASSERT_FAIL(rte_bbdev_release(dev2),
> "Failed to uninitialize bbdev driver with invalid name");

Can use strlcpy() instead of snprintf() here.
Mokhtar, Amr Feb. 11, 2019, 1:35 p.m. | #2
> -----Original Message-----
> From: Poornima, PallantlaX
> Sent: Monday 4 February 2019 07:16
> To: dev@dpdk.org
> Cc: Pattan, Reshma <reshma.pattan@intel.com>; Mokhtar, Amr
> <amr.mokhtar@intel.com>; Poornima, PallantlaX
> <pallantlax.poornima@intel.com>; stable@dpdk.org
> Subject: [PATCH] app/testbbdev: fix sprintf with snprintf
> 
> sprintf function is not secure as it doesn't check the length of string.
> More secure function snprintf is used.
> 
> Fixes: f714a18885 ("app/testbbdev: add test application for bbdev")
> Cc: stable@dpdk.org
> 
> Signed-off-by: Pallantla Poornima <pallantlax.poornima@intel.com>
> ---

Acked-by: Amr Mokhtar <amr.mokhtar@intel.com>
Mokhtar, Amr Feb. 15, 2019, 11:30 a.m. | #3
> -----Original Message-----
> From: Parthasarathy, JananeeX M
> Sent: Friday 15 February 2019 11:08
> To: Yigit, Ferruh <ferruh.yigit@intel.com>; Poornima, PallantlaX
> <pallantlax.poornima@intel.com>; dev@dpdk.org
> Cc: Pattan, Reshma <reshma.pattan@intel.com>; Mokhtar, Amr
> <amr.mokhtar@intel.com>; stable@dpdk.org
> Subject: RE: [dpdk-dev] [PATCH] app/testbbdev: fix sprintf with snprintf
> 
> Hi
> 
> >-----Original Message-----
> >From: dev [mailto:dev-bounces@dpdk.org] On Behalf Of Ferruh Yigit
> >Sent: Friday, February 08, 2019 7:44 PM
> >To: Poornima, PallantlaX <pallantlax.poornima@intel.com>;
> dev@dpdk.org
> >Cc: Pattan, Reshma <reshma.pattan@intel.com>; Mokhtar, Amr
> ><amr.mokhtar@intel.com>; stable@dpdk.org
> >Subject: Re: [dpdk-dev] [PATCH] app/testbbdev: fix sprintf with snprintf
> >
> >On 2/4/2019 7:15 AM, Pallantla Poornima wrote:
> >> @@ -825,7 +825,7 @@
> >>
> >>  test_bbdev_driver_init(void)
> >>
> >> TEST_ASSERT_FAIL(rte_bbdev_release(NULL),
> >> "Failed to uninitialize bbdev driver with NULL bbdev");
> >> - sprintf(name_tmp, "%s", "invalid_name");
> >> + snprintf(name_tmp, sizeof(name_tmp), "%s", "invalid_name");
> >> dev2 = rte_bbdev_get_named_dev(name_tmp);
> >> TEST_ASSERT_FAIL(rte_bbdev_release(dev2),
> >> "Failed to uninitialize bbdev driver with invalid name");
> >
> >Can use strlcpy() instead of snprintf() here.
> 
> Please confirm whether we can do this change (snprintf to strlcpy) as there
> was Ack from other reviewer.

I agree with Ferruh suggestion, as this is a simple string copying.
Feel free to use strlcpy instead and retain my Ack.
Thanks.

> Thanks
> M.P.Jananee

Patch

diff --git a/app/test-bbdev/test_bbdev.c b/app/test-bbdev/test_bbdev.c
index a914817bc..b9fc750d3 100644
--- a/app/test-bbdev/test_bbdev.c
+++ b/app/test-bbdev/test_bbdev.c
@@ -788,14 +788,14 @@  test_bbdev_driver_init(void)
 
 	/* Initialize the maximum amount of devices */
 	do {
-		sprintf(name_tmp, "%s%i", "name_", num_devs);
+		snprintf(name_tmp, sizeof(name_tmp), "%s%i", "name_", num_devs);
 		dev2 = rte_bbdev_allocate(name_tmp);
 		TEST_ASSERT(dev2 != NULL,
 				"Failed to initialize bbdev driver");
 		++num_devs;
 	} while (num_devs < (RTE_BBDEV_MAX_DEVS - 1));
 
-	sprintf(name_tmp, "%s%i", "name_", num_devs);
+	snprintf(name_tmp, sizeof(name_tmp), "%s%i", "name_", num_devs);
 	dev2 = rte_bbdev_allocate(name_tmp);
 	TEST_ASSERT(dev2 == NULL, "Failed to initialize bbdev driver number %d "
 			"more drivers than RTE_BBDEV_MAX_DEVS: %d ", num_devs,
@@ -804,7 +804,7 @@  test_bbdev_driver_init(void)
 	num_devs--;
 
 	while (num_devs >= num_devs_tmp) {
-		sprintf(name_tmp, "%s%i", "name_", num_devs);
+		snprintf(name_tmp, sizeof(name_tmp), "%s%i", "name_", num_devs);
 		dev2 = rte_bbdev_get_named_dev(name_tmp);
 		TEST_ASSERT_SUCCESS(rte_bbdev_release(dev2),
 				"Failed to uninitialize bbdev driver %s ",
@@ -825,7 +825,7 @@  test_bbdev_driver_init(void)
 	TEST_ASSERT_FAIL(rte_bbdev_release(NULL),
 			"Failed to uninitialize bbdev driver with NULL bbdev");
 
-	sprintf(name_tmp, "%s", "invalid_name");
+	snprintf(name_tmp, sizeof(name_tmp), "%s", "invalid_name");
 	dev2 = rte_bbdev_get_named_dev(name_tmp);
 	TEST_ASSERT_FAIL(rte_bbdev_release(dev2),
 			"Failed to uninitialize bbdev driver with invalid name");