On 9/22/2017 3:48 PM, Daniel Mrzyglod wrote: > Memory allocated in strdup is not free. > > Coverity issue: 143257 > Fixes: d8a2bc71dfc2 ("log: remove app path from syslog id") > Cc: tho...@monjalon.net > > Signed-off-by: Daniel Mrzyglod <danielx.t.mrzyg...@intel.com> > --- > v2: > * Fix due to compilation errors > > lib/librte_eal/linuxapp/eal/eal.c | 18 +++++++++++++++++- > 1 file changed, 17 insertions(+), 1 deletion(-) > > diff --git a/lib/librte_eal/linuxapp/eal/eal.c > b/lib/librte_eal/linuxapp/eal/eal.c > index 48f12f4..a7df566 100644 > --- a/lib/librte_eal/linuxapp/eal/eal.c > +++ b/lib/librte_eal/linuxapp/eal/eal.c > @@ -751,7 +751,7 @@ rte_eal_init(int argc, char **argv) > int i, fctret, ret; > pthread_t thread_id; > static rte_atomic32_t run_once = RTE_ATOMIC32_INIT(0); > - const char *logid; > + char *logid; > char cpuset[RTE_CPU_AFFINITY_STR_LEN]; > char thread_name[RTE_MAX_THREAD_NAME_LEN]; > > @@ -781,6 +781,7 @@ rte_eal_init(int argc, char **argv) > if (rte_eal_cpu_init() < 0) { > rte_eal_init_alert("Cannot detect lcores."); > rte_errno = ENOTSUP; > + free(logid);
Hi Daniel, This works but this variable is a nuance and adding free() for this it into main eal features fail path looks like noise. Initially, do we need to strdup this variable at all? What will happen if logid fed into rte_eal_log_init() without strdup? Since it is const char *, I guess the string is just for read and content won't be changed so it should be OK I guess. If above is not right, what about creating a static variable and use it instead of dynamically allocating the logid, what do you think? Thanks, ferruh > return -1; > } > > @@ -789,6 +790,7 @@ rte_eal_init(int argc, char **argv) > rte_eal_init_alert("Invalid 'command line' arguments."); > rte_errno = EINVAL; > rte_atomic32_clear(&run_once); > + free(logid); > return -1; > } > <...>