log: fix log level regexp matching
Fix misuse of regular expression functions, which was producing a segfault. After the patch, it works properly: $ ./build/app/test --no-huge --log-level=pmd,3 RTE>>dump_log_types [...] id 30: user7, level is debug id 31: user8, level is debug id 32: pmd.i40e.init, level is critical id 33: pmd.i40e.driver, level is critical Coverity issue: 143472 Fixes: a5279180f510 ("eal: change several log levels matching a regexp") Reported-by: Jianfeng Tan <jianfeng.tan@intel.com> Signed-off-by: Olivier Matz <olivier.matz@6wind.com> Acked-by: Ferruh Yigit <ferruh.yigit@intel.com>
This commit is contained in:
parent
ea85e941d2
commit
73454ace6a
@ -159,10 +159,14 @@ rte_log_set_level_regexp(const char *pattern, uint32_t level)
|
||||
if (level > RTE_LOG_DEBUG)
|
||||
return -1;
|
||||
|
||||
if (regcomp(&r, pattern, 0) != 0)
|
||||
return -1;
|
||||
|
||||
for (i = 0; i < rte_logs.dynamic_types_len; i++) {
|
||||
if (rte_logs.dynamic_types[i].name == NULL)
|
||||
continue;
|
||||
if (regexec(&r, pattern, 0, NULL, 0) == 0)
|
||||
if (regexec(&r, rte_logs.dynamic_types[i].name, 0,
|
||||
NULL, 0) == 0)
|
||||
rte_logs.dynamic_types[i].loglevel = level;
|
||||
}
|
||||
|
||||
|
Loading…
x
Reference in New Issue
Block a user