From f71dc1901fb5a63126101b6179fc8469d68573ef Mon Sep 17 00:00:00 2001 From: Michal Sojka Date: Wed, 31 Jul 2013 15:49:00 +0200 Subject: [PATCH] cmdproc: Handle returned error correctly This case should not happen when cmd_processor_run() calls the respective functions, but let's fix this is somebody calls the functions differently. --- libs4c/cmdproc/cmd_io_line.c | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/libs4c/cmdproc/cmd_io_line.c b/libs4c/cmdproc/cmd_io_line.c index a7fdf23..4abace0 100644 --- a/libs4c/cmdproc/cmd_io_line.c +++ b/libs4c/cmdproc/cmd_io_line.c @@ -29,7 +29,7 @@ * @param elb Edit line buffer. * @param ch character to add. * - * @return 1 in case of end of line, 0 otherwise. + * @return 1 in case of end of line, -1 if called at inaproprate time, 0 otherwise. */ int cmd_ed_line_buf(ed_line_buf_t *elb, int ch) { @@ -98,6 +98,8 @@ int cmd_io_line_in(cmd_io_t *cmd_io) while((ch=cmd_io_getc(io_stack))>=0){ // DPRINT("Added %c (%d)\n", ch, ch); int eol = cmd_ed_line_buf(ed_line_in,ch); + if (eol == -1) + return -1; if(eol){ if(ed_line_in->flg&FL_ELB_ECHO){ while(cmd_io_putc(io_stack,'\r')<0); -- 2.39.2