Mercurial > octave
diff liboctave/util/cmd-edit.cc @ 26489:8f425e6ea110 stable
cmd-edit.cc: Fix static analyzer detected issues (bug #55347).
* cmd-edit.cc (looks_like_filename): Check pointer 'f' validity before using.
* cmd-edit.cc (gnu_readline::command_generator, gnu_readline::command_quoter,
gnu_readline::command_dequoter): Check pointer "retval" validity before using.
* cmd-edit.cc (gnu_readline::command_completer): Declare and assign "matches"
in one statement.
* cmd-edit.cc (command_editor::do_decode_prompt_string): Replace final "else if"
in if/else if tree with just "else".
author | Rik <rik@octave.org> |
---|---|
date | Mon, 07 Jan 2019 17:29:54 -0800 |
parents | d41c487e5de2 |
children | 7455523fdf01 |
line wrap: on
line diff
--- a/liboctave/util/cmd-edit.cc Mon Jan 07 15:49:30 2019 -0800 +++ b/liboctave/util/cmd-edit.cc Mon Jan 07 17:29:54 2019 -0800 @@ -529,7 +529,7 @@ // Remove incomplete component. const char *f = strrchr (line, sys::file_ops::dir_sep_char ()); - if (s[1] == '~' || (f && f != s)) + if (f && (s[1] == '~' || f != s)) { // For something like "A /b", f==s; don't assume a file. @@ -833,7 +833,8 @@ { retval = static_cast<char *> (std::malloc (len+1)); - strcpy (retval, tmp.c_str ()); + if (retval) + strcpy (retval, tmp.c_str ()); } return retval; @@ -854,7 +855,8 @@ { retval = static_cast<char *> (std::malloc (len+1)); - strcpy (retval, tmp.c_str ()); + if (retval) + strcpy (retval, tmp.c_str ()); } return retval; @@ -875,7 +877,8 @@ { retval = static_cast<char *> (std::malloc (len+1)); - strcpy (retval, tmp.c_str ()); + if (retval) + strcpy (retval, tmp.c_str ()); } return retval; @@ -905,9 +908,10 @@ char ** gnu_readline::command_completer (const char *text, int, int) { - char **matches = nullptr; - matches - = ::octave_rl_completion_matches (text, gnu_readline::command_generator); + char **matches = + ::octave_rl_completion_matches (text, + gnu_readline::command_generator); + return matches; } @@ -1736,7 +1740,7 @@ tmpstr = now.strftime ("%I:%M:%S"); else if (c == '@') tmpstr = now.strftime ("%I:%M %p"); - else if (c == 'A') + else // (c == 'A') tmpstr = now.strftime ("%H:%M"); break;