vlib: fix vlib log elog vector overrun 81/30181/2
authorBenoît Ganne <bganne@cisco.com>
Thu, 26 Nov 2020 18:56:44 +0000 (19:56 +0100)
committerDave Barach <openvpp@barachs.net>
Thu, 26 Nov 2020 22:45:40 +0000 (22:45 +0000)
vlib log strings are vectors not necessarily null-terminated C-string.

Type: fix
Fixes: bc867c3d2137dab4b1395196c1936233517980ab

Change-Id: Ia805ecdf4e76ccb1001dc93647161ee1c3adebc9
Signed-off-by: Benoît Ganne <bganne@cisco.com>
src/vlib/log.c

index bd456ae..ed14d9e 100644 (file)
@@ -251,7 +251,7 @@ vlib_log (vlib_log_level_t level, vlib_log_class_t class, char *fmt, ...)
           /* *INDENT-ON* */
          ed = ELOG_DATA (&vm->elog_main, ee);
          ed->log_level = level;
-         ed->string_index = elog_string (&vm->elog_main, (char *) e->string);
+         ed->string_index = elog_string (&vm->elog_main, "%v", e->string);
        }
 
       lm->next = (lm->next + 1) % lm->size;