[dpdk-dev] test: fix uninitialized parameter in table autotest

Message ID 846bcc6aa9ec715cc750949e08b80f07341a91fa.1513865562.git.anatoly.burakov@intel.com (mailing list archive)
State Accepted, archived
Delegated to: Thomas Monjalon
Headers

Checks

Context Check Description
ci/checkpatch success coding style OK
ci/Intel-compilation success Compilation OK

Commit Message

Burakov, Anatoly Dec. 21, 2017, 3:53 p.m. UTC
  delete_bulk() copies metadata to pointers provided by the entries
parameter, but in the unit test, they are uninitialized, leading
to rte_table attempting to memcpy into random garbage pointers.

Memsetting pointer table to zero will prevent that from happening.

Fixes: 48f2543cf0a8 ("app/test: add bulk adding and deleting")
Cc: marcinx.kerlin@intel.com
Cc: stable@dpdk.org
Signed-off-by: Anatoly Burakov <anatoly.burakov@intel.com>
---
 test/test/test_table_acl.c | 2 ++
 1 file changed, 2 insertions(+)
  

Comments

Cristian Dumitrescu Jan. 11, 2018, 2:17 p.m. UTC | #1
> -----Original Message-----
> From: Burakov, Anatoly
> Sent: Thursday, December 21, 2017 3:53 PM
> To: dev@dpdk.org
> Cc: Dumitrescu, Cristian <cristian.dumitrescu@intel.com>; Kerlin, Marcin
> <marcin.kerlin@intel.com>; stable@dpdk.org
> Subject: [PATCH] test: fix uninitialized parameter in table autotest
> 
> delete_bulk() copies metadata to pointers provided by the entries
> parameter, but in the unit test, they are uninitialized, leading
> to rte_table attempting to memcpy into random garbage pointers.
> 
> Memsetting pointer table to zero will prevent that from happening.
> 
> Fixes: 48f2543cf0a8 ("app/test: add bulk adding and deleting")
> Cc: marcinx.kerlin@intel.com
> Cc: stable@dpdk.org
> Signed-off-by: Anatoly Burakov <anatoly.burakov@intel.com>
> ---
>  test/test/test_table_acl.c | 2 ++
>  1 file changed, 2 insertions(+)
> 
> diff --git a/test/test/test_table_acl.c b/test/test/test_table_acl.c
> index 08c100f..6fcf4cc 100644
> --- a/test/test/test_table_acl.c
> +++ b/test/test/test_table_acl.c
> @@ -532,6 +532,8 @@ setup_acl_pipeline(void)
>  		struct rte_pipeline_table_entry *table_entries[5];
>  		int key_found[5];
> 
> +		memset(table_entries, 0, sizeof(table_entries));
> +
>  		for (n = 0; n < 5; n++) {
>  			memset(&keys[n], 0, sizeof(struct
> rte_table_acl_rule_delete_params));
>  			key_array[n] = &keys[n];
> --
> 2.7.4

Acked-by: Cristian Dumitrescu <cristian.dumitrescu@intel.com>
  
Thomas Monjalon Jan. 17, 2018, 11:28 p.m. UTC | #2
> > delete_bulk() copies metadata to pointers provided by the entries
> > parameter, but in the unit test, they are uninitialized, leading
> > to rte_table attempting to memcpy into random garbage pointers.
> > 
> > Memsetting pointer table to zero will prevent that from happening.
> > 
> > Fixes: 48f2543cf0a8 ("app/test: add bulk adding and deleting")
> > Cc: marcinx.kerlin@intel.com
> > Cc: stable@dpdk.org
> > Signed-off-by: Anatoly Burakov <anatoly.burakov@intel.com>
> 
> Acked-by: Cristian Dumitrescu <cristian.dumitrescu@intel.com>

Applied, thanks
  

Patch

diff --git a/test/test/test_table_acl.c b/test/test/test_table_acl.c
index 08c100f..6fcf4cc 100644
--- a/test/test/test_table_acl.c
+++ b/test/test/test_table_acl.c
@@ -532,6 +532,8 @@  setup_acl_pipeline(void)
 		struct rte_pipeline_table_entry *table_entries[5];
 		int key_found[5];
 
+		memset(table_entries, 0, sizeof(table_entries));
+
 		for (n = 0; n < 5; n++) {
 			memset(&keys[n], 0, sizeof(struct rte_table_acl_rule_delete_params));
 			key_array[n] = &keys[n];