summaryrefslogtreecommitdiffstats
path: root/src/option.c
diff options
context:
space:
mode:
authorBram Moolenaar <Bram@vim.org>2023-02-06 16:40:49 +0000
committerBram Moolenaar <Bram@vim.org>2023-02-06 16:40:49 +0000
commit546933f4974d0e0966a4d4e78a6a46b7532d71c6 (patch)
tree18b5c62ade64508cb66e864eb882ec192152cbaa /src/option.c
parenta9a6b0323ea3dc5e4d11d28e7c9ae3534e02ee54 (diff)
patch 9.0.1286: Coverity warns for using a NULL pointerv9.0.1286
Problem: Coverity warns for using a NULL pointer. Solution: Bail out whan "varp" is NULL.
Diffstat (limited to 'src/option.c')
-rw-r--r--src/option.c15
1 files changed, 11 insertions, 4 deletions
diff --git a/src/option.c b/src/option.c
index 420d36d05c..66d681e48f 100644
--- a/src/option.c
+++ b/src/option.c
@@ -1815,7 +1815,8 @@ do_set_string(
}
/*
- * Set a boolean option
+ * Set a boolean option.
+ * Returns an untranslated error message or NULL.
*/
static char *
do_set_option_bool(
@@ -1833,6 +1834,8 @@ do_set_option_bool(
if (nextchar == '=' || nextchar == ':')
return e_invalid_argument;
+ if (opt_idx < 0 || varp == NULL)
+ return NULL; // "cannot happen"
/*
* ":set opt!": invert
@@ -1870,7 +1873,8 @@ do_set_option_bool(
}
/*
- * Set a numeric option
+ * Set a numeric option.
+ * Returns an untranslated error message or NULL.
*/
static char *
do_set_option_numeric(
@@ -1890,6 +1894,9 @@ do_set_option_numeric(
int i;
char *errmsg = NULL;
+ if (opt_idx < 0 || varp == NULL)
+ return NULL; // "cannot happen"
+ //
/*
* Different ways to set a number option:
* & set to default value
@@ -2209,8 +2216,8 @@ do_set_option(
}
/*
- * allow '=' and ':' for historical reasons (MSDOS command.com
- * allows only one '=' character per "set" command line. grrr. (jw)
+ * Allow '=' and ':' for historical reasons (MSDOS command.com).
+ * Allows only one '=' character per "set" command line. grrr. (jw)
*/
if (nextchar == '?'
|| (prefix == PREFIX_NONE