This is an old revision of the document!
| If in doubt, do not classify! |
Using Coverity Prevent
https://scan.coverity.com/ → log in, sign up for the FreeBSD project
Hints, Tips and Tricks
When you classified a valid problem, please search in Bugzilla or Phabricator for corresponding bug reports. Add the PR or DR number to the CoverityID and vice versa.
Stuff which is supposed to help in classifying errors to be added here, e.g. showing an example of stuff Coverity Prevent gets always wrong and how it should be classified.
- It seems that the TAILQ macros confuse Coverity. For example TAILQ_FIRST() seems to trigger an use after free error in <list>.tqh_first when entries are removed in a loop (loop by hand or with FOREACH). In particular it does not recognize that TAILQ_REMOVE puts a new pointer in place an the pointer which previously aliases the tqh_first in not aliasing anymore but it's the only valid pointer. Such cases should be marked as XXX (ATM marked as IGNORE until I know if this should be marked as a FALSE or if this should stay as IGNORE until a custom model is developed for this). Anyone up to write a Coverity Prevent model for our TAILQ macros?
TODO
- determine initial list of subsystems which need custom models (= with frequent false positives) and add them below (no owner)
- write custom models for:
- TAILQ macros (no owner)
- UMA (no owner)