raw/skeleton: fix test of attribute set/get

Using memory on the stack instead of on the heap by calling malloc
also avoid memory leak in case of test case failures

Fixes: 88d0e47880ec ("raw/skeleton: fix memory leak on test failure")
Cc: stable@dpdk.org

Signed-off-by: Thinh Tran <thinhtr@linux.vnet.ibm.com>
Acked-by: Shreyansh Jain <shreyansh.jain@nxp.com>
This commit is contained in:
Thinh Tran 2019-06-11 16:44:12 -05:00 committed by Thomas Monjalon
parent 5348806e43
commit dcb1595956

View File

@ -274,17 +274,14 @@ static int
test_rawdev_attr_set_get(void)
{
int ret;
int *dummy_value;
int *dummy_value, set_value;
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 = &set_value;
*dummy_value = 200;
ret = rte_rawdev_set_attr(TEST_DEV_ID, "Test2", (uintptr_t)dummy_value);
@ -294,11 +291,9 @@ test_rawdev_attr_set_get(void)
"Attribute (Test1) not set correctly (%" PRIu64 ")",
ret_value);
free(dummy_value);
ret_value = 0;
ret = rte_rawdev_get_attr(TEST_DEV_ID, "Test2", &ret_value);
RTE_TEST_ASSERT_EQUAL(*((int *)(uintptr_t)ret_value), 200,
RTE_TEST_ASSERT_EQUAL(*((int *)(uintptr_t)ret_value), set_value,
"Attribute (Test2) not set correctly (%" PRIu64 ")",
ret_value);