vlib: fix "foo_msg" and "foo_msg_reply" in API message table triggering the "definini... 39/16939/3
authorAndrew Yourtchenko <ayourtch@gmail.com>
Mon, 21 Jan 2019 15:39:33 +0000 (16:39 +0100)
committerDave Wallace <dwallacelf@gmail.com>
Fri, 5 Apr 2019 12:48:09 +0000 (12:48 +0000)
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>
src/vlibmemory/vlib_api_cli.c

index 4c55292..2d8d407 100755 (executable)
@@ -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",