diff options
author | Steven <sluong@cisco.com> | 2018-04-25 11:29:00 -0700 |
---|---|---|
committer | Damjan Marion <dmarion.lists@gmail.com> | 2018-04-26 18:05:53 +0000 |
commit | 526ea3e1286d11c9319b53812756fe9a9eb44edf (patch) | |
tree | b1944951ecec4913b540a8750ac7e9ae618122bb /LICENSE | |
parent | b66be270c78f4ba950712ee461c3fa27ea3bce1d (diff) |
vlib: set log tap level <level> does not work for some keywords
While some levels such as debug and emerg work, others don't. See below.
DBGvpp# set log class tap level warn
set log class tap level warn
set logging class: unknown input `level warn'
DBGvpp# set log class tap level debug
set log class tap level debug
DBGvpp# set log class tap level info
set log class tap level info
set logging class: unknown input `level info'
DBGvpp# set log class tap level err
set log class tap level err
DBGvpp# set log class tap level crit
set log class tap level crit
set logging class: unknown input `level crit'
DBGvpp# set log class tap level emerg
set log class tap level emerg
DBGvpp#
Cause:
The reason for the failure for the shorter keywords is level_str is unformatted
with %v which is not null terminated. For example, the character after "info"
could be anything in level_str. The memcmp with size of the macro keyword __##uc
which includes the null character or 5 in this case and thus the comparison fails.
Fix:
Use %s which insure level_str is null terminated. Use strcmp to rule out
false positve match like "debugxxx" against keyword "debug".
Change-Id: I7a2d97a0f7f618df105da7eca791618dce04d21e
Signed-off-by: Steven <sluong@cisco.com>
Diffstat (limited to 'LICENSE')
0 files changed, 0 insertions, 0 deletions