Code Review
/
vpp.git
/ blobdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
review
|
tree
raw
|
inline
| side by side
vlib: fix unix cli SIGSEGV for empty line input
[vpp.git]
/
src
/
vlib
/
unix
/
cli.c
diff --git
a/src/vlib/unix/cli.c
b/src/vlib/unix/cli.c
index
0a8041e
..
2a13c84
100644
(file)
--- a/
src/vlib/unix/cli.c
+++ b/
src/vlib/unix/cli.c
@@
-2557,6
+2557,9
@@
more:
format_timeval, 0 /* current bat-time */ ,
0 /* current bat-format */ ,
cli_file_index, cf->current_command);
format_timeval, 0 /* current bat-time */ ,
0 /* current bat-format */ ,
cli_file_index, cf->current_command);
+ 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));
}
int rv __attribute__ ((unused)) = write (um->log_fd, lv, vec_len (lv));
}
@@
-3089,9
+3092,11
@@
unix_cli_config (vlib_main_t * vm, unformat_input_t * input)
clib_panic ("sigaction");
/* Retrieve the current terminal size */
clib_panic ("sigaction");
/* Retrieve the current terminal size */
- ioctl (STDIN_FILENO, TIOCGWINSZ, &ws);
- cf->width = ws.ws_col;
- cf->height = ws.ws_row;
+ if (ioctl (STDIN_FILENO, TIOCGWINSZ, &ws) == 0)
+ {
+ cf->width = ws.ws_col;
+ cf->height = ws.ws_row;
+ }
if (cf->width == 0 || cf->height == 0)
{
if (cf->width == 0 || cf->height == 0)
{
@@
-3328,7
+3333,7
@@
unix_cli_exec (vlib_main_t * vm,
unformat_free (&sub_input);
done:
unformat_free (&sub_input);
done:
- if (fd > 0)
+ if (fd >
=
0)
close (fd);
vec_free (file_name);
close (fd);
vec_free (file_name);