Mercurial > vim
changeset 12367:7ae2b2c84ec5 v8.0.1063
patch 8.0.1063: Coverity warns for NULL check and array use
commit https://github.com/vim/vim/commit/28550b74bb4373417eb6fbf132bd4211b7b92afa
Author: Bram Moolenaar <Bram@vim.org>
Date: Tue Sep 5 23:31:01 2017 +0200
patch 8.0.1063: Coverity warns for NULL check and array use
Problem: Coverity warns for NULL check and using variable pointer as an
array.
Solution: Remove the NULL check. Make "argvar" an array.
author | Christian Brabandt <cb@256bit.org> |
---|---|
date | Tue, 05 Sep 2017 23:45:04 +0200 |
parents | 1e2c608b8049 |
children | 4fe07a0c9b47 |
files | src/terminal.c src/version.c |
diffstat | 2 files changed, 11 insertions(+), 7 deletions(-) [+] |
line wrap: on
line diff
--- a/src/terminal.c +++ b/src/terminal.c @@ -462,7 +462,7 @@ term_start(typval_T *argvar, jobopt_T *o void ex_terminal(exarg_T *eap) { - typval_T argvar; + typval_T argvar[2]; jobopt_T opt; char_u *cmd; char_u *tofree = NULL; @@ -525,8 +525,8 @@ ex_terminal(exarg_T *eap) } cmd = skipwhite(p); } - if (cmd == NULL || *cmd == NUL) - /* Make a copy, an autocommand may set 'shell'. */ + if (*cmd == NUL) + /* Make a copy of 'shell', an autocommand may change the option. */ tofree = cmd = vim_strsave(p_sh); if (eap->addr_count > 0) @@ -539,9 +539,10 @@ ex_terminal(exarg_T *eap) opt.jo_in_bot = eap->line2; } - argvar.v_type = VAR_STRING; - argvar.vval.v_string = cmd; - term_start(&argvar, &opt, eap->forceit); + argvar[0].v_type = VAR_STRING; + argvar[0].vval.v_string = cmd; + argvar[1].v_type = VAR_UNKNOWN; + term_start(argvar, &opt, eap->forceit); vim_free(tofree); } @@ -2886,7 +2887,8 @@ f_term_wait(typval_T *argvars, typval_T && STRCMP(job_status(buf->b_term->tl_job), "dead") == 0) { /* The job is dead, keep reading channel I/O until the channel is - * closed. */ + * closed. buf->b_term may become NULL if the terminal was closed while + * waiting. */ ch_log(NULL, "term_wait(): waiting for channel to close"); while (buf->b_term != NULL && !buf->b_term->tl_channel_closed) {