vlib: fix unix cli SIGSEGV for empty line input 18/25818/3
authorFan Zhang <roy.fan.zhang@intel.com>
Thu, 12 Mar 2020 09:26:38 +0000 (09:26 +0000)
committerPaul Vinciguerra <pvinci@vinciconsulting.com>
Thu, 12 Mar 2020 12:51:00 +0000 (12:51 +0000)
When logging is enabled, an empty line input (press Enter only)
will cause SIGSEGV. This patch fixes the problem by checking
the command length first.

Type: fix

Signed-off-by: Fan Zhang <roy.fan.zhang@intel.com>
Change-Id: Ib4cbd1c7bfd6a694e289d28958875c7d2356a93e

src/vlib/unix/cli.c

index 6e566d1..2a13c84 100644 (file)
@@ -2557,7 +2557,8 @@ more:
                   format_timeval, 0 /* current bat-time */ ,
                   0 /* current bat-format */ ,
                   cli_file_index, cf->current_command);
-      if (cf->current_command[vec_len (cf->current_command) - 1] != '\n')
+      if ((vec_len (cf->current_command) > 0) &&
+         (cf->current_command[vec_len (cf->current_command) - 1] != '\n'))
        lv = format (lv, "\n");
       int rv __attribute__ ((unused)) = write (um->log_fd, lv, vec_len (lv));
     }