[PATCH v3 01/13] app/dma-perf: fix use-after-free

fengchengwen fengchengwen at huawei.com
Mon Oct 13 10:15:23 CEST 2025


On 10/13/2025 3:55 PM, Bruce Richardson wrote:
> On Mon, Oct 13, 2025 at 11:02:24AM +0800, Chengwen Feng wrote:
>> The test_case->eal_args was pointer the entry of cfgfile, it will be
>> used later, but the cfgfile was closed in load_configs(). This commit
>> fix it by using strdup.
>>
>> Fixes: 623dc9364dc6 ("app/dma-perf: introduce DMA performance test")
>> Cc: stable at dpdk.org
>>
>> Signed-off-by: Chengwen Feng <fengchengwen at huawei.com>
>> Acked-by: Vamsi Attunuru <vattunuru at marvell.com>
>> ---
>>  app/test-dma-perf/main.c | 2 ++
>>  1 file changed, 2 insertions(+)
>>
>> diff --git a/app/test-dma-perf/main.c b/app/test-dma-perf/main.c
>> index 0586b3e1d0..25a79d1d6c 100644
>> --- a/app/test-dma-perf/main.c
>> +++ b/app/test-dma-perf/main.c
>> @@ -480,6 +480,8 @@ load_configs(const char *path)
>>  					section_name, "test_seconds"));
>>  
>>  		test_case->eal_args = rte_cfgfile_get_entry(cfgfile, section_name, "eal_args");
>> +		if (test_case->eal_args != NULL)
>> +			test_case->eal_args = strdup(test_case->eal_args);
>>  		test_case->is_valid = true;
>>  	}
>>  
> Do we not need a matching free() for each strdup call? (Same comment applies
> to next patch too.)

Yes, free() should match for each strdup call, why not add free() based on:
this is a sample which run at limit time, the strdup just invoke several times
which couldn't lead to short of memory. so in order to simplifies programming, I
think currently impl is okay.

> 



More information about the dev mailing list