vlib: fix "foo_msg" and "foo_msg_reply" in API message table triggering the "defininion changed" output

strncmp() succeeds if the i+1th message is "foo_reply",
because the comparison terminates early after "foo" -
which triggers the "definition changed" rather than
"only in ..." message.

Fix also the case where i+1th element does not exist.

Change-Id: I127136410491d9dd102e160fd831fcf6f0bd3a9f
Signed-off-by: Andrew Yourtchenko <ayourtch@gmail.com>
This commit is contained in:
Andrew Yourtchenko
2019-01-21 16:39:33 +01:00
committed by Dave Wallace
parent f118ea2f38
commit ae605b8903

View File

@ -1114,8 +1114,8 @@ dump_api_table_file_command_fn (vlib_main_t * vm,
ndifferences++;
/* Only in one of two tables? */
if (strncmp ((char *) table[i].name, (char *) table[i + 1].name,
vec_len (table[i].name)))
if (i + 1 == vec_len (table)
|| strcmp ((char *) table[i].name, (char *) table[i + 1].name))
{
last_unique:
vlib_cli_output (vm, "%-60s only in %s",