[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