What do you like best about Coverity?
We use the Coverity Static Analysis tool for security scans of C/C++ server code.
Coverity is having a higher detection rate as we highly rely on this code scan for our application code.
We had seamlessly integrated this SAST tool (Coverity) to our CI/CD Pipeline and the vulnerabilities were being notified to the respective developer via mail.
It provides a mechanism to audit the findings and mark false positives in an effecient way.
Support for several languages is one another factor that stands out well when compared to other tools.
Time it takes to scan huge code lines is significantky faster compared to other tools. Review collected by and hosted on G2.com.
What do you dislike about Coverity?
However there are some improvements points which I thought I should highlight to make this tool even more better for the end users.
strzcpy vs. NULL_STRING
Coverity does not recognize that strzcpy adds a terminating x00.
ab_pfetch*
On Windows we currently have many OVERRUN false positives.
bsearch on fixed width table vs. Literal
Coverity’s model for bsearch assumes that bsearch access the key on the full width of the key. If bsearch is given a fixed (max) size table, and say strcmp as compare function, then in reality when bsearch is called with a small literal as key, then all is good. Alas Coverity thinks that bsearch will read beyond the end of the literal, even though strcmp will not.
NO_EFFECT on var_arg
On Windows we currently have a NO_EFFECT warning on all uses of va_args
TAINTED_SCALAR
Coverity to warn for uses of tainted data, data that might be controlled by an attacker. This may lead to data corruption, code injection,...
When possible Coverity reports additional defects describing the dangerous use of the tainted data INTEGER_OVERFLOW.
RW.LITERAL_OPERATOR_NOT_FOUND on printf with TEL_Format
When using TEL defined format such as TEL_Flpu, TEL_Fsu, TEL_Fpid ,... Coverity sometimes requires a space before the 'T' from TEL_Fxxx.
TAINTED_STRING
Coverity to warn for uses of tainted data, data that might be controlled by an attacker. This may lead to data corruption, code injection, SQL injection, directory traversal,
PW.PRINTF_ARG_MISMATCH - * precision or * size vs. size_t or ptrdiff_t parameters
64 bits builds or scans - The C-Standard states that the * precision or size are of type int. This is generally 4 bytes. On 64 bits builds size_t and ptrdiff_t are 8 bytes.
If I had submitted a fix yesterday, today’s Coverity Connect continue to report the defect. Review collected by and hosted on G2.com.