On 2023/11/14 1:09, Tyler Retzlaff wrote:
On Mon, Nov 13, 2023 at 06:45:29PM +0800, Jie Hai wrote:
Multiple threads calling the same function may cause condition
race issues, which often leads to abnormal behavior and can cause
more serious vulnerabilities such as abnormal termination, denial
of service, and compromised data integrity.
The strtok() is non-reentrant, it is better to replace it with a
reentrant function.
could you please use strtok_s instead of strtok_r the former is part of
the C11 standard the latter is not.
thanks!
Hi, Tyler Retzlaff
Thanks for your comment.
For the use of strtok_s, I have consulted some documents, see
https://en.cppreference.com/w/c/string/byte/strtok
It says
"As with all bounds-checked functions, strtok_s only guaranteed to be
available if __STDC_LIB_EXT1__ is defined by the implementation and if
the user defines __STDC_WANT_LIB_EXT1__ to the integer constant 1 before
including <string.h>.
"
I use strtok_s with "#ifdef __STDC_LIB_EXT1__ ... #endif" around and
compiled
locally and found that __STDC_LIB_EXT1__ was not defined, so the related
code was not called. I'm afraid there's a problem with this
modification.
Am I using strtok_s wrong?
Thanks,
Jie Hai
Jie Hai (21):
app/graph: replace strtok with strtok_r
app/test-bbdev: replace strtok with strtok_r
app/test-compress-perf: replace strtok with strtok_r
app/test-crypto-perf: replace strtok with strtok_r
app/test-dma-perf: replace strtok with strtok_r
app/test-fib: replace strtok with strtok_r
app/dpdk-test-flow-perf: replace strtok with strtok_r
app/test-mldev: replace strtok with strtok_r
lib/dmadev: replace strtok with strtok_r
lib/eal: replace strtok with strtok_r
lib/ethdev: replace strtok with strtok_r
lib/eventdev: replace strtok with strtok_r
lib/telemetry: replace strtok with strtok_r
lib/telemetry: replace strtok with strtok_r
bus/fslmc: replace strtok with strtok_r
common/cnxk: replace strtok with strtok_r
event/cnxk: replace strtok with strtok_r
net/ark: replace strtok with strtok_r
raw/cnxk_gpio: replace strtok with strtok_r
examples/l2fwd-crypto: replace strtok with strtok_r
examples/vhost: replace strtok with strtok_r
app/graph/graph.c | 5 ++-
app/graph/utils.c | 15 +++++---
app/test-bbdev/test_bbdev_vector.c | 25 +++++++-----
.../comp_perf_options_parse.c | 16 ++++----
app/test-crypto-perf/cperf_options_parsing.c | 16 ++++----
.../cperf_test_vector_parsing.c | 10 +++--
app/test-dma-perf/main.c | 13 ++++---
app/test-fib/main.c | 10 ++---
app/test-flow-perf/main.c | 22 ++++++-----
app/test-mldev/ml_options.c | 18 ++++-----
drivers/bus/fslmc/fslmc_bus.c | 5 ++-
drivers/bus/fslmc/portal/dpaa2_hw_dpio.c | 4 +-
drivers/common/cnxk/cnxk_telemetry_nix.c | 12 +++---
drivers/event/cnxk/cnxk_eventdev.c | 10 +++--
drivers/event/cnxk/cnxk_tim_evdev.c | 11 +++---
drivers/net/ark/ark_pktchkr.c | 10 ++---
drivers/net/ark/ark_pktgen.c | 10 ++---
drivers/raw/cnxk_gpio/cnxk_gpio.c | 6 +--
examples/l2fwd-crypto/main.c | 6 +--
examples/vhost/main.c | 3 +-
lib/dmadev/rte_dmadev.c | 4 +-
lib/eal/common/eal_common_memory.c | 8 ++--
lib/ethdev/rte_ethdev_telemetry.c | 6 ++-
lib/eventdev/rte_event_eth_rx_adapter.c | 38 +++++++++----------
lib/eventdev/rte_eventdev.c | 18 ++++-----
lib/security/rte_security.c | 3 +-
lib/telemetry/telemetry.c | 5 ++-
27 files changed, 169 insertions(+), 140 deletions(-)
--
2.30.0
.