numam-dpdk/lib
Chengwen Feng d59a940667 trace: fix init with long file prefix
Bug scenario:
1. start testpmd:
  $ dpdk-testpmd -l 4-6 -a 0000:7d:00.0 --trace=.* \
    --file-prefix=trace_autotest -- -i
2. then observed:
  EAL: eal_trace_init():93 failed to initialize trace [File exists]
  EAL: FATAL: Cannot init trace
  EAL: Cannot init trace
  EAL: Error - exiting with code: 1

The root cause it that the offset set wrong with long file-prefix and
then lead the strftime return failed.

At the same time, trace_session_name_generate() uses errno as the return
value, but the errno was not set if strftime returned zero.
A previously set errno (EEXIST or ENOENT from call to mkdir for creating
the runtime configuration directory) was returned in this case.
This is fragile and may lead to incorrect logic if errno was set
to 0 previously.
This also resulted in inaccurate prompting.
Set errno to ENOSPC if strftime return zero.

Fixes: 321dd5f8fa ("trace: add internal init and fini interface")
Cc: stable@dpdk.org

Signed-off-by: Chengwen Feng <fengchengwen@huawei.com>
Reviewed-by: David Marchand <david.marchand@redhat.com>
Acked-by: Jerin Jacob <jerinj@marvell.com>
2022-06-21 11:11:00 +02:00
..
acl acl: fix rules with 8-byte field size 2022-05-30 23:30:33 +02:00
bbdev lib: remove unneeded header includes 2022-02-22 13:10:39 +01:00
bitratestats bitrate: promote free function to stable 2021-10-01 15:31:47 +02:00
bpf bpf: fix build with some libpcap version on FreeBSD 2022-03-14 11:41:52 +01:00
cfgfile version: 21.11-rc0 2021-08-17 08:37:52 +02:00
cmdline cmdline: add function to verify valid commands 2022-06-13 10:26:39 +02:00
compressdev compressdev: fix missing space in log macro 2022-03-15 02:13:57 +01:00
cryptodev replace zero-length arrays with flexible ones 2022-06-07 16:44:21 +02:00
distributor distributor: fix potential overflow 2022-02-27 19:06:59 +01:00
dmadev dmadev: add telemetry 2022-06-06 23:31:29 +02:00
eal trace: fix init with long file prefix 2022-06-21 11:11:00 +02:00
efd efd: fix uninitialized structure 2022-02-27 18:58:47 +01:00
ethdev ethdev: introduce available Rx descriptors threshold 2022-06-08 21:41:00 +02:00
eventdev replace zero-length arrays with flexible ones 2022-06-07 16:44:21 +02:00
fib lib: remove unneeded header includes 2022-02-22 13:10:39 +01:00
flow_classify lib: remove unneeded header includes 2022-02-22 13:10:39 +01:00
gpudev gpudev: fix page alignment in communication list 2022-03-09 00:14:55 +01:00
graph graph: remove useless duplicate name check 2022-03-07 20:31:14 +01:00
gro lib: remove unneeded header includes 2022-02-22 13:10:39 +01:00
gso mbuf: add namespace to offload flags 2021-10-24 13:37:43 +02:00
hash hash: unify CRC32 selection for x86 and Arm 2022-05-19 10:00:51 -04:00
ip_frag replace zero-length arrays with flexible ones 2022-06-07 16:44:21 +02:00
ipsec replace zero-length arrays with flexible ones 2022-06-07 16:44:21 +02:00
jobstats lib: remove unneeded header includes 2022-02-22 13:10:39 +01:00
kni kni: add missing C++ guards 2022-02-22 14:47:49 +01:00
kvargs lib: remove unneeded header includes 2022-02-22 13:10:39 +01:00
latencystats lib: remove unneeded header includes 2022-02-22 13:10:39 +01:00
lpm lpm: fix scalar version header for C++ 2022-06-15 09:12:19 +02:00
mbuf mbuf: dump outer VLAN 2022-06-01 11:15:37 +02:00
member lib: remove unneeded header includes 2022-02-22 13:10:39 +01:00
mempool lib: remove unneeded header includes 2022-02-22 13:10:39 +01:00
meter version: 21.11-rc0 2021-08-17 08:37:52 +02:00
metrics metrics: add missing C++ guards 2022-02-22 14:47:49 +01:00
net ip_frag: add IPv4 options fragment 2022-06-01 08:58:27 +02:00
node lib: remove unneeded header includes 2022-02-22 13:10:39 +01:00
pcapng pcapng: fix timestamp wrapping in output files 2022-06-01 16:39:25 +02:00
pci lib: remove unneeded header includes 2022-02-22 13:10:39 +01:00
pdump lib: remove unneeded header includes 2022-02-22 13:10:39 +01:00
pipeline pipeline: rework optimization pattern for header generation 2022-06-20 16:14:50 +02:00
port port: support packet mirroring 2022-06-01 15:04:34 +02:00
power power: add get/set min/max scaling frequencies API 2022-06-04 22:39:49 +02:00
rawdev lib: remove unneeded header includes 2022-02-22 13:10:39 +01:00
rcu lib: remove unneeded header includes 2022-02-22 13:10:39 +01:00
regexdev build: hide local symbols in shared libraries 2022-03-08 15:22:33 +01:00
reorder lib: remove unneeded header includes 2022-02-22 13:10:39 +01:00
rib replace zero-length arrays with flexible ones 2022-06-07 16:44:21 +02:00
ring lib: remove unneeded header includes 2022-02-22 13:10:39 +01:00
sched sched: enable traffic class oversubscription conditionally 2022-06-01 08:58:27 +02:00
security security: fix SA lifetime comments 2022-04-28 09:26:48 +02:00
stack lib: remove unneeded header includes 2022-02-22 13:10:39 +01:00
table replace zero-length arrays with flexible ones 2022-06-07 16:44:21 +02:00
telemetry telemetry: add missing C++ guards 2022-02-22 14:47:49 +01:00
timer lib: remove unneeded header includes 2022-02-22 13:10:39 +01:00
vhost replace zero-length arrays with flexible ones 2022-06-07 16:44:21 +02:00
meson.build build: add definitions for use as Meson subproject 2022-06-07 20:49:20 +02:00