ZyX
d66217ab6d
option: Fix PVS/V517: duplicate check for titlelen
2018-04-16 11:32:00 +03:00
ZyX
0eb1d7ca4c
option: Silence PVS/V594: GLOBAL_WO macros is not really necessary
...
In that case it is completely possible to just use w_allbuf_opt directly.
2018-04-16 11:31:27 +03:00
ZyX
95cc2507c9
ops: Fix PVS/V560: pre may not be zero as that was already checked
2018-04-16 11:23:22 +03:00
ZyX
fc1ebb060e
ops: Fix PVS/V614: use of uninitialized variable
...
I have actually no idea how code managed to work and not trigger ASAN/etc here.
It does not look like a false positive at all.
2018-04-15 21:49:47 +03:00
ZyX
dae1975394
ops: Fix PVS/V547: allocator never returns NULL
2018-04-15 21:46:32 +03:00
ZyX
2b7a8ceeb6
ops: Fix PVS/V547: did_change is almost always set
...
Only exception is early `goto theend`.
2018-04-15 21:44:36 +03:00
ZyX
4a145f2036
ops: Silence PVS/V614: regtype is always initialized
2018-04-15 21:40:30 +03:00
ZyX
3b32e717d9
message: Fix PVS/V547: c is never equal to KS_ZERO
...
Since `c` there is a result of evaluating `TO_SPECIAL` macros it may be only one
of the following three things:
1. K_SPECIAL
2. K_ZERO (note: not KS_ZERO)
3. negative integer resulting from evaluating TERMCAP2KEY macro.
All variants here are negative and thus fail next !IS_SPECIAL(c) check (negative
is special). If `c` was really NUL it would fall into the `!IS_SPECIAL(c)` block
and use whatever character is third in `<80>{a}{b}` combo. For `<Nul>` it is
X (`<80><ff>X`).
2018-04-15 21:32:26 +03:00
ZyX
cb3230776e
memline: Fix PVS/V547: allocator now never returns NULL
2018-04-15 20:56:42 +03:00
ZyX
2940af8321
memline: Fix PVS/V560: allocator now never returns NULL
2018-04-15 20:55:26 +03:00
ZyX
a2f9188418
mbyte: Fix PVS/V557: do not do useless job
...
I do not see how array overrun is actually possible, but still EUC encodings may
do fine without a cycle.
2018-04-15 20:53:29 +03:00
ZyX
24ee261317
if_cscope: Fix PVS/V560: condition would result in earlier return
...
Previous block just checks for totmatches being zero and returns if it is. And
totmatches is unsigned, so `totmatches > 0` may never be true.
2018-04-15 20:36:21 +03:00
ZyX
b8f69b6b9a
os/fs: Fix PVS/V560: condition was already checked in while()
...
It is not possible to enter while loop body with unsigned2 == 0 if loop
condition requires unsigned1 < unsigned2.
2018-04-15 20:34:27 +03:00
ZyX
3189841984
fileio: Silence PVS/V614: buffer is initialized if conv_restlen > 0
2018-04-15 20:32:21 +03:00
ZyX
cd27198526
fileio: Fix PVS/V547: split is not used
...
This is removed functionality, specifically no longer supported 16-bit integers.
2018-04-15 20:30:31 +03:00
ZyX
1fb4282f1c
fileio: Fix PVS/V560: end was already checked
...
See condition at line 3309.
2018-04-15 20:27:41 +03:00
ZyX
11f6411771
file_search: Silence PVS/V614: used buffer is never uninitialized
2018-04-15 20:18:20 +03:00
ZyX
d084628c4b
kvec: Silence PVS/V512: it is not needed to fill the whole array
2018-04-15 20:14:55 +03:00
ZyX
a20261fae7
viml/parser/expressions: Fix PVS/V547: condition checked earlier
...
See previous goto with the same label.
2018-04-15 20:11:21 +03:00
ZyX
bc235bf1f6
viml/parser/expressions: Fix PVS/V547: condition checked earlier
...
See previous goto with the same label.
2018-04-15 20:10:48 +03:00
ZyX
6196738a3b
ex_cmds: Fix PVS/V547: expression was already checked in outer if()
2018-04-15 20:08:32 +03:00
ZyX
17e21eae24
eval: Silence PVS/V547: PVS cannot stand !known_val
expressions
2018-04-15 20:07:07 +03:00
ZyX
092b4d9774
*: Add some PVS comments
2018-04-15 20:07:07 +03:00
ZyX
469ba2fb49
ex_getln: Fix PVS/V547: function is stated to never return NULL
2018-04-15 20:07:07 +03:00
ZyX
c90e9df5b5
ex_getln: Fix PVS/V560: there are no longer NULL returns for OOM
2018-04-15 20:07:07 +03:00
ZyX
cad616c94e
ex_docmd: Fix PVS/V547: condition was already checked in surr. if()
2018-04-15 20:07:07 +03:00
ZyX
d7e4449adb
ex_docmd: Fix PVS/V547: due to short-circuiting name_len is never > 4
2018-04-15 20:07:07 +03:00
ZyX
103be37f42
ex_cmds: Fix PVS/V557: possible array overrun in :ascii
...
Some calculation show that with the current setup there will not be enough bytes
occupied for that, barring the case of malicious translation. Still should be
possible to have array overrun with specially crafted translation.
2018-04-15 20:07:07 +03:00
ZyX
aa5008c1f0
ex_cmds: Simplify do_ascii
...
Specifically apply constants like enc_utf8 (which are constants *now*) and
simplify conditions after that. Also some style changes.
2018-04-15 19:01:58 +03:00
ZyX
db7f80302b
ex_cmds: Remove #ifdef USE_GUI
...
`ag` shows that this identifier (`USE_GUI`) is found in exactly one place (zero
after this commit). So I assume macros is never defined.
2018-04-15 18:52:37 +03:00
ZyX
1df9ac1c03
eval: Fix PVS/V547: skipping is now done using eval0
2018-04-15 18:50:02 +03:00
ZyX
f8d574225b
eval: Silence PVS/V547: E882 may be triggered
...
I failed to deduce why analyzer thinks E882 may not be triggered, though
conditions for triggering it are strange: it would trigger E882 only in the
single case “function returned non-number”. Cases “function thrown exception”,
or “built-in sorter encountered error” will neither yield E882 nor stop
sort()/uniq().
Note though that searching test code revealed that neither E702 nor E882 are not
tested anywhere.
2018-04-15 18:45:12 +03:00
ZyX
6f19b9f4e1
eval: Silence PVS/V614: use of potentially uninitialized pointer
...
It is hard to say whether it actually is uninitialized, need to go deeper into
regex code. Probably analyzer did not go that far as regmatch for sure would not
be initialized up until calling NFA/DFA engine functions, which is to be done by
pointer.
2018-04-10 01:52:18 +03:00
ZyX
4d1b3bf317
eval: Fix PVS/V560: unneded check for name_len
...
It is unsigned, zero length would already cause early return and length 1 is
checked earlier in the same condition.
2018-04-10 01:52:08 +03:00
ZyX
07b67f9eff
eval: Fix PVS/V547: ufunc_T is actually an incomplete type
2018-04-10 01:51:52 +03:00
ZyX
536d9a6168
edit: Fix PVS/V560: remove always true/false checks
2018-04-10 01:12:59 +03:00
ZyX
ef57cd81fe
diff: Fix PVS/V547: remove no longer needed OOM handler
2018-04-10 01:12:38 +03:00
ZyX
5acda03576
eval/decode: Silence PVS/V547: code written for 32-bit integers
2018-04-09 10:29:34 +03:00
ZyX
db29fa8164
charset: Fix PVS/V560: remove condition which was already checked
2018-04-09 10:29:33 +03:00
ZyX
1edb4894dc
charset: Silence PVS/V785: remove switch()
...
No idea why it thinks that pre is constant expression, but switch() may be
removed.
2018-04-09 10:29:32 +03:00
ZyX
f8a44b73f0
event/loop: Silence PVS/V547: condition is false in case of no timeout
2018-04-09 10:29:32 +03:00
ZyX
92759ef34f
buffer: Fix PVS/V560: condition was checked three lines above
2018-04-09 10:29:31 +03:00
ZyX
840027c7f5
buffer: Fix PVS/V547: base is never set to octal
2018-04-09 10:29:30 +03:00
ZyX
93be2ba542
charset: Fix transchar() with multibyte characters
...
It appears that transchar() was working under assumption that
`transchar_nonprint()` may be used for multibyte characters while its
documentation stated exact opposite. It was not actually untrue though, except
that longer buffer would be needed then the one stated in documentation. But it
is false now with assert().
2018-04-09 10:29:29 +03:00
ZyX
58a5699a44
buffer: PVS/V557: Refactor maketitle()
2018-04-09 10:29:28 +03:00
ZyX
2a6491cdf8
os/env: Refactor home_replace() to the new style and to return length
2018-04-09 10:29:26 +03:00
ZyX
0d7daaad98
charset,*: Refactor transstr()
2018-04-09 01:39:33 +03:00
ZyX
e670756676
memory: Fix documentation of some string copying functions
2018-04-09 01:36:52 +03:00
ZyX
414ef75ee6
buffer: Beautify code a bit
2018-04-09 01:35:23 +03:00
ZyX
1fc09b5b98
eval/typval_encode: Silence PVS/V501,V547,V779
...
These kinds of warnings are inevitable for generic macros.
2018-04-02 00:46:18 +03:00