[dpdk-dev] [PATCH 1/2] raw/skeleton: fix failing test case

Bruce Richardson bruce.richardson at intel.com
Wed Jun 19 19:08:01 CEST 2019

The freeing of the malloced memory is difficult when using asserts to
cause early abort of the test cases, since that can leak memory. The
original placement of the free call caused a memory leak if the test
finished early, while a fix for that leak caused the test to fail at
times due to the memory variable being referenced after free. For a case
like this, using stack rather than heap memory is just easier and avoids
all issues.

Fixes: 55ca1b0f2151 ("raw/skeleton: add test cases")
Fixes: 88d0e47880ec ("raw/skeleton: fix memory leak on test failure")
Cc: shreyansh.jain at nxp.com
Cc: stable at dpdk.org

Signed-off-by: Bruce Richardson <bruce.richardson at intel.com>
 drivers/raw/skeleton_rawdev/skeleton_rawdev_test.c | 8 ++------
 1 file changed, 2 insertions(+), 6 deletions(-)

diff --git a/drivers/raw/skeleton_rawdev/skeleton_rawdev_test.c b/drivers/raw/skeleton_rawdev/skeleton_rawdev_test.c
index 359c9e296..a0961c77b 100644
--- a/drivers/raw/skeleton_rawdev/skeleton_rawdev_test.c
+++ b/drivers/raw/skeleton_rawdev/skeleton_rawdev_test.c
@@ -274,17 +274,14 @@ static int
 	int ret;
-	int *dummy_value;
+	int dummy_value_store;
+	int *dummy_value = &dummy_value_store;
 	uint64_t ret_value;
 	/* Set an attribute and fetch it */
 	ret = rte_rawdev_set_attr(TEST_DEV_ID, "Test1", 100);
 	RTE_TEST_ASSERT(!ret, "Unable to set an attribute (Test1)");
-	dummy_value = malloc(sizeof(int));
-	if (!dummy_value)
-		RTE_TEST_ASSERT(1, "Unable to allocate memory (dummy_value)");
 	*dummy_value = 200;
 	ret = rte_rawdev_set_attr(TEST_DEV_ID, "Test2", (uintptr_t)dummy_value);
@@ -294,7 +291,6 @@ test_rawdev_attr_set_get(void)
 			      "Attribute (Test1) not set correctly (%" PRIu64 ")",
-	free(dummy_value);
 	ret_value = 0;
 	ret = rte_rawdev_get_attr(TEST_DEV_ID, "Test2", &ret_value);

More information about the dev mailing list