Christian Brabandt
220474d239
patch 9.1.0608: Coverity warns about a few potential issues
...
Problem: Coverity warns about a few potential issues
Solution: Fix those issues (see details below)
1) Fix overflow warning in highlight.c
This happens because we are comparing int with long
and assign a potential long value to an int, which
could cause an overflow. So add some casts to ensure
the value fits into an int.
2) Fix Overflow warning in shift_line().
This happens because we are performing a division/modulo
operation of a long type by an int type and assign the result
to an int, which could then overflow. So before performing
the operation, trim the long to value to at most max int value,
so that it can't overflow.
3) Fix overflow warning in syn_list_cluster in syntax.c
This is essential the same issue as 1)
4) not checking the return value of vim_mkdir() in spellfile.c
Creating the spell directory could fail. Handle this case
and return early in this case.
5) qsort() may deref a NULL pointer when fuzzy match does not
return a result. Fix this by checking that the accessed growarray
fuzzy_indices actually contains data. If not we can silently skip
the qsort() and related logic.
closes : #15284
Signed-off-by: Christian Brabandt <cb@256bit.org>
2024-07-20 13:26:44 +02:00
zeertzjq
94b7c3233e
patch 9.1.0172: More code can use ml_get_buf_len() instead of STRLEN()
...
Problem: More code can use ml_get_buf_len() instead of STRLEN().
Solution: Change more STRLEN() calls to ml_get_buf_len(). Also do not
set ml_line_textlen in ml_replace_len() if "has_props" is set,
because "len_arg" also includes the size of text properties in
that case. (zeertzjq)
closes : #14183
Signed-off-by: zeertzjq <zeertzjq@outlook.com>
Signed-off-by: Christian Brabandt <cb@256bit.org>
2024-03-12 21:50:32 +01:00
Keith Thompson
184f71cc68
patch 9.1.0006: is*() and to*() function may be unsafe
...
Problem: is*() and to*() function may be unsafe
Solution: Add SAFE_* macros and start using those instead
(Keith Thompson)
Use SAFE_() macros for is*() and to*() functions
The standard is*() and to*() functions declared in <ctype.h> have
undefined behavior for negative arguments other than EOF. If plain char
is signed, passing an unchecked value from argv for from user input
to one of these functions has undefined behavior.
Solution: Add SAFE_*() macros that cast the argument to unsigned char.
Most implementations behave sanely for negative arguments, and most
character values in practice are non-negative, but it's still best
to avoid undefined behavior.
The change from #13347 has been omitted, as this has already been
separately fixed in commit ac709e2fc0db6d31abb7da96f743c40956b60c3a
(v9.0.2054)
fixes : #13332
closes : #13347
Signed-off-by: Keith Thompson <Keith.S.Thompson@gmail.com>
Signed-off-by: Christian Brabandt <cb@256bit.org>
2024-01-04 21:19:04 +01:00
ichizok
7e5fe38efc
patch 9.0.1454: code indenting is confused by macros
...
Problem: Code indenting is confused by macros.
Solution: Put semicolon after the macros instead of inside. (Ozaki Kiichi,
closes #12257 )
2023-04-15 13:17:50 +01:00
Yegappan Lakshmanan
14113fdf9c
patch 9.0.1390: FOR_ALL_ macros are defined in an unexpected file
...
Problem: FOR_ALL_ macros are defined in an unexpected file.
Solution: Move FOR_ALL_ macros to macros.h. Add FOR_ALL_HASHTAB_ITEMS.
(Yegappan Lakshmanan, closes #12109 )
2023-03-07 17:13:51 +00:00
Yegappan Lakshmanan
af93691b53
patch 9.0.1330: handling new value of an option has a long "else if" chain
...
Problem: Handling new value of an option has a long "else if" chain.
Solution: Use a function pointer. (Yegappan Lakshmanan, closes #12015 )
2023-02-20 12:16:39 +00:00
zeertzjq
1b438a8228
patch 9.0.1271: using sizeof() and subtract array size is tricky
...
Problem: Using sizeof() and subtract array size is tricky.
Solution: Use offsetof() instead. (closes #11926 )
2023-02-01 13:11:15 +00:00
Yegappan Lakshmanan
fadc02a2a5
patch 9.0.1251: checking returned value of ga_grow() is inconsistent
...
Problem: Checking returned value of ga_grow() is inconsistent.
Solution: Check for FAIL instaed of "not OK". (Yegappan Lakshmanan,
closes #11897 )
2023-01-27 21:03:12 +00:00
Yegappan Lakshmanan
6ec6666047
patch 9.0.1237: code is indented more than necessary
...
Problem: Code is indented more than necessary.
Solution: Use an early return where it makes sense. (Yegappan Lakshmanan,
closes #11858 )
2023-01-23 20:46:21 +00:00
Bram Moolenaar
ef2c325f5e
patch 9.0.0949: crash when unletting a variable while listing variables
...
Problem: Crash when unletting a variable while listing variables.
Solution: Disallow changing a hashtable while going over the entries.
(closes #11435 )
2022-11-25 16:31:51 +00:00
dundargoc
c57b5bcd22
patch 9.0.0828: various typos
...
Problem: Various typos.
Solution: Correct typos. (closes #11432 )
2022-11-02 13:30:51 +00:00
Bram Moolenaar
c7d2ff2ca0
patch 9.0.0384: Covertity still complains about using return value of getc()
...
Problem: Covertity still complains about using return value of getc().
Solution: Check for EOF.
2022-09-05 11:04:14 +01:00
Bram Moolenaar
963ab26842
patch 9.0.0383: Coverity complains about unused value
...
Problem: Coverity complains about unused value.
Solution: Use the value.
2022-09-05 10:55:27 +01:00
Bram Moolenaar
c1eb131c9e
patch 9.0.0378: compiler warning for uninitialized variable
...
Problem: Compiler warning for uninitialized variable. (Tony Mechelynck)
Solution: Initialize it.
2022-09-04 13:45:15 +01:00
Bram Moolenaar
3c7707680f
patch 9.0.0374: Coverity still complains about dropping sign of character
...
Problem: Coverity still complains about dropping sign of character.
Solution: Add intermediate variable.
2022-09-04 11:55:19 +01:00
Bram Moolenaar
0a6bb59f6b
patch 9.0.0367: Coverity complains about dropping sign of character
...
Problem: Coverity complains about dropping sign of character.
Solution: Add explicit type cast.
2022-09-03 12:53:20 +01:00
Bram Moolenaar
6669de1b23
patch 9.0.0240: crash when using ":mkspell" with an empty .dic file
...
Problem: Crash when using ":mkspell" with an empty .dic file.
Solution: Check for an empty word tree.
2022-08-21 20:33:47 +01:00
Bram Moolenaar
a4d158b3c8
patch 9.0.0206: redraw flags are not named specifically
...
Problem: Redraw flags are not named specifically.
Solution: Prefix "UPD_" to the flags, for UPDate_screen().
2022-08-14 14:17:45 +01:00
K.Takata
2ebcc35826
patch 9.0.0052: "zG" may throw an error if invalid character follows
...
Problem: "zG" may throw an error if invalid character follows.
Solution: Pass the word length to valid_spell_word(). (Ken Takata,
closes #10737 )
2022-07-14 17:25:14 +01:00
Bram Moolenaar
5e59ea54c0
patch 9.0.0021: invalid memory access when adding word to spell word list
...
Problem: Invalid memory access when adding word with a control character to
the internal spell word list.
Solution: Disallow adding a word with control characters or a trailing
slash.
2022-07-01 22:26:20 +01:00
Bram Moolenaar
7c824682d2
patch 8.2.4919: can add invalid bytes with :spellgood
...
Problem: Can add invalid bytes with :spellgood.
Solution: Check for a valid word string.
2022-05-08 22:32:58 +01:00
Bram Moolenaar
31e5c60a68
patch 8.2.4753: error from setting an option is silently ignored
...
Problem: Error from setting an option is silently ignored.
Solution: Handle option value errors better. Fix uses of N_().
2022-04-15 13:53:33 +01:00
Bram Moolenaar
4dea2d92e4
patch 8.2.4653: "import autoload" does not check the file name
...
Problem: "import autoload" does not check the file name.
Solution: Give an error if the file is not readable. (closes #10049 )
2022-03-31 11:37:57 +01:00
Bram Moolenaar
416b5f4894
patch 8.2.4473: Coverity warnds for not checking return value of ftell()
...
Problem: Coverity warnds for not checking return value of ftell().
Solution: Bail out if ftell() returns a negative value.
2022-02-25 21:47:48 +00:00
kylo252
ae6f1d8b14
patch 8.2.4402: missing parenthesis may cause unexpected problems
...
Problem: Missing parenthesis may cause unexpected problems.
Solution: Add more parenthesis is macros. (closes #9788 )
2022-02-16 19:24:07 +00:00
Rob Pilling
8196e94a8b
patch 8.2.4343: when reloading not all properties are detected
...
Problem: When reloading not all properties are detected.
Solution: Add the "edit" value to v:fcs_choice. (Rob Pilling, closes #9579 )
2022-02-11 15:12:10 +00:00
=?UTF-8?q?Dundar=20G=C3=B6c?=
420fabcd4f
patch 8.2.4241: some type casts are redundant
...
Problem: Some type casts are redundant.
Solution: Remove the type casts. (closes #9643 )
2022-01-28 15:28:04 +00:00
Bram Moolenaar
04935fb17e
patch 8.2.4043: using int for second argument of ga_init2()
...
Problem: Using int for second argument of ga_init2().
Solution: Remove unnessary type cast (int) when using sizeof().
2022-01-08 16:19:22 +00:00
Bram Moolenaar
9d00e4a814
patch 8.2.4010: error messages are spread out
...
Problem: Error messages are spread out.
Solution: Move more error messages to errors.h.
2022-01-05 17:49:15 +00:00
Bram Moolenaar
677658ae49
patch 8.2.4008: error messages are spread out
...
Problem: Error messages are spread out.
Solution: Move more error messages to errors.h.
2022-01-05 16:09:06 +00:00
Bram Moolenaar
74409f6279
patch 8.2.3970: error messages are spread out
...
Problem: Error messages are spread out.
Solution: Move more errors to errors.h.
2022-01-01 15:58:22 +00:00
Bram Moolenaar
460ae5dfca
patch 8.2.3967: error messages are spread out
...
Problem: Error messages are spread out.
Solution: Move more errors to errors.h.
2022-01-01 14:19:49 +00:00
Bram Moolenaar
436b5adc97
patch 8.2.3961: error messages are spread out
...
Problem: Error messages are spread out.
Solution: Move more errors to errors.h.
2021-12-31 22:49:24 +00:00
Bram Moolenaar
eb822a280c
patch 8.2.3955: error messages are spread out
...
Problem: Error messages are spread out.
Solution: Move more errors to errors.h.
2021-12-31 15:09:27 +00:00
Dominique Pelle
af4a61a85d
patch 8.2.3914: various spelling mistakes in comments
...
Problem: Various spelling mistakes in comments.
Solution: Fix the mistakes. (Dominique Pellé, closes #9416 )
2021-12-27 17:21:41 +00:00
=?UTF-8?q?Bj=C3=B6rn=20Linse?=
1daedc8381
patch 8.2.3777: spell file write error not checked
...
Problem: Spell file write error not checked.
Solution: Check writing the prefix conditions. (Bjorn Linse, closes #9323 )
2021-12-10 20:39:17 +00:00
ichizok
dee78e1ce8
patch 8.2.3770: new compiler warnings from clang-12 and clang-13
...
Problem: New compiler warnings from clang-12 and clang-13.
Solution: Adjust CI and suppress some warnings. (Ozaki Kiichi, closes #9314 )
2021-12-09 21:08:01 +00:00
Bram Moolenaar
40bcec1bac
patch 8.2.3750: error messages are everywhere
...
Problem: Error messages are everywhere.
Solution: Move more error messages to errors.h and adjust the names.
2021-12-05 22:19:27 +00:00
Bram Moolenaar
b85d3627d9
patch 8.2.3328: Coverity error for not checking return value
...
Problem: Coverity error for not checking return value.
Solution: Check value is not negative.
2021-08-11 15:54:59 +02:00
Bram Moolenaar
108010aa47
patch 8.2.3069: error messages are spread out
...
Problem: Error messages are spread out.
Solution: Move some error messages to errors.h. Use clearer names.
2021-06-27 22:03:33 +02:00
Bram Moolenaar
4f13527598
patch 8.2.2974: Greek spell checking uses wrong case folding
...
Problem: Greek spell checking uses wrong case folding.
Solution: Fold capital sigma depending on whether it is at the end of a
word or not. (closes #299 )
2021-06-11 19:07:40 +02:00
Bram Moolenaar
2c363a2e95
patch 8.2.2462: Coverity warns for not checking for fseek() error
...
Problem: Coverity warns for not checking for fseek() error.
Solution: Give an error message if fseek() fails.
2021-02-03 20:14:23 +01:00
Bram Moolenaar
e90d63ea90
patch 8.2.1565: spellfile test sometimes fails
...
Problem: Spellfile test sometimes fails.
Solution: Check running into the end of the file.
2020-09-02 12:58:48 +02:00
Bram Moolenaar
4ad739fc05
patch 8.2.1564: a few remaining errors from ubsan
...
Problem: A few remaining errors from ubsan.
Solution: Avoid the warnings. (Dominique Pellé, closes #6837 )
2020-09-02 10:25:45 +02:00
Bram Moolenaar
9c2b06637b
patch 8.2.1560: using NULL pointers in some code
...
Problem: Using NULL pointers in some code. (James McCoy)
Solution: Avoid adding to a NULL pointer. Use byte as unsigned.
2020-09-01 19:56:15 +02:00
Bram Moolenaar
07399e7f07
patch 8.2.1521: reading past end of buffer when reading spellfile
...
Problem: Reading past end of buffer when reading spellfile. (Yegappan
Lakshmanan)
Solution: Store the byte length and check for it.
2020-08-24 20:05:50 +02:00
Bram Moolenaar
fc2a47ffc4
patch 8.2.1493: not enough test coverage for the spell file handling
...
Problem: Not enough test coverage for the spell file handling.
Solution: Add spell file tests. (Yegappan Lakshmanan, closes #6728 )
2020-08-20 15:41:55 +02:00
Bram Moolenaar
97d2f34c87
patch 8.2.1169: write NUL past allocated space using corrupted spell file
...
Problem: Write NUL past allocated space using corrupted spell file.
(Markus Vervier)
Solution: Init "c" every time.
2020-07-10 20:03:03 +02:00
Bram Moolenaar
927b7dd0fe
patch 8.2.1089: Coverity warns for pointer computation
...
Problem: Coverity warns for pointer computation.
Solution: Avoid computing a pointer to invalid memory.
2020-06-29 22:24:56 +02:00
Bram Moolenaar
408c23b079
patch 8.2.0895: :mkspell output does not mention the tree type
...
Problem: :mkspell output does not mention the tree type.
Solution: Back out increasing the limits, it has no effect. Mention the
tree being compressed. Only give a message once per second.
2020-06-03 22:15:45 +02:00