This patch is for checking if error values occurs. fix for coverity errors #13209 & #13195
If the function returns an error value, the error value may be mistaken for a normal value. In rdline_char_in: Value returned from a function is not checked for errors before being used Signed-off-by: Daniel Mrzyglod <danielx.t.mrzyglod at intel.com> --- lib/librte_cmdline/cmdline_rdline.c | 19 +++++++++++++++---- 1 file changed, 15 insertions(+), 4 deletions(-) diff --git a/lib/librte_cmdline/cmdline_rdline.c b/lib/librte_cmdline/cmdline_rdline.c index 1ef2258..e75a556 100644 --- a/lib/librte_cmdline/cmdline_rdline.c +++ b/lib/librte_cmdline/cmdline_rdline.c @@ -377,7 +377,10 @@ rdline_char_in(struct rdline *rdl, char c) case CMDLINE_KEY_CTRL_K: cirbuf_get_buf_head(&rdl->right, rdl->kill_buf, RDLINE_BUF_SIZE); rdl->kill_size = CIRBUF_GET_LEN(&rdl->right); - cirbuf_del_buf_head(&rdl->right, rdl->kill_size); + + if (cirbuf_del_buf_head(&rdl->right, rdl->kill_size) < 0) + return -EINVAL; + rdline_puts(rdl, vt100_clear_right); break; @@ -496,7 +499,10 @@ rdline_char_in(struct rdline *rdl, char c) vt100_init(&rdl->vt100); cirbuf_init(&rdl->left, rdl->left_buf, 0, RDLINE_BUF_SIZE); cirbuf_init(&rdl->right, rdl->right_buf, 0, RDLINE_BUF_SIZE); - cirbuf_add_buf_tail(&rdl->left, buf, strnlen(buf, RDLINE_BUF_SIZE)); + + if (cirbuf_add_buf_tail(&rdl->left, buf, strnlen(buf, RDLINE_BUF_SIZE)) < 0) + return -EINVAL; + rdline_redisplay(rdl); break; @@ -513,7 +519,10 @@ rdline_char_in(struct rdline *rdl, char c) vt100_init(&rdl->vt100); cirbuf_init(&rdl->left, rdl->left_buf, 0, RDLINE_BUF_SIZE); cirbuf_init(&rdl->right, rdl->right_buf, 0, RDLINE_BUF_SIZE); - cirbuf_add_buf_tail(&rdl->left, buf, strnlen(buf, RDLINE_BUF_SIZE)); + + if (cirbuf_add_buf_tail(&rdl->left, buf, strnlen(buf, RDLINE_BUF_SIZE)) < 0) + return -EINVAL; + rdline_redisplay(rdl); break; @@ -640,7 +649,9 @@ rdline_add_history(struct rdline * rdl, const char * buf) rdline_remove_old_history_item(rdl); } - cirbuf_add_buf_tail(&rdl->history, buf, len); + if (cirbuf_add_buf_tail(&rdl->history, buf, len) < 0) + return -EINVAL; + cirbuf_add_tail(&rdl->history, 0); return 0; -- 2.5.5