Hi, Stephen Hemminger

On 2024/10/23 23:42, Stephen Hemminger wrote:
> On Wed, 23 Oct 2024 16:28:10 +0800
> Dengdui Huang <huangdeng...@huawei.com> wrote:
> 
>> The function strerror() is insecure in a multi-thread environment.
>> It is better to use rte_strerror() instead of strerror().
>> In this patchset, only the libs and drivers are modified.
>>
>> chang log:
>> v3->v4 fix ci error
>> v2->v3 drop patch "telemetry: replace strerror" due to compile fail
>> v1-v2 fix ci error
> 
> Even rte_strerror is not completely safe. It depends on the calling
> thread being a registered lcore.

As discussed earlier, it is still safe if used from non-DPDK registered 
threads[1]:

#define RTE_DEFINE_PER_LCORE(type, name)                        \
        __thread __typeof__(type) per_lcore_##name

[1]: 
https://elixir.bootlin.com/dpdk/v23.11-rc3/source/lib/eal/include/rte_per_lcore.h#L37

> 
> It would be better to use a coccinelle script to do direct replacement
> with strerror_r().
> 
> Also, rte_strerror is not signal safe.

Can we use strerror_r() in the signal processing context and replace it with 
rte_strerror() everywhere else?

Reply via email to