Tags (Labels)
Tag | Meaning |
|---|---|
Pages that form the main sections of this standard and that are listed in the Section Index on the SEI CERT C Coding Standard page. | |
Guidelines with links to a rule in 6 The Void. The link should be removed. | |
Guidelines that have been significantly changed since the checker was coded. The checker needs updating. | |
Pages that need work. | |
Pages that need to be deleted. See also void below. | |
Pages that have problems with the citations at the bottom. | |
Pages with comments that might make good sidebars. | |
Guidelines in other CERT secure coding standards (residing in other Wiki spaces) that might make good C guidelines. Port to C those rules that are truly applicable. | |
Guidelines that might be candidates for adoption in the SEI CERT Oracle Coding Standard for Java. | |
Pages tagged for elimination from the standard and that are listed in 6 The Void. |
ROSE-Specific Tags (Labels)
Pages now have tags (also known as
| Wiki Markup |
|---|
{doc://display/DOC/Working with Labels Overview}Labels{doc} |
) to indicate the status of their corresponding checker in Compass Rose:
Tag | Meaning |
|---|---|
ROSE catches all violations | |
ROSE catches some violations | |
ROSE could catch some or all violations, but doesn't yet. | |
ROSE doesn't catch violations, but will soon, | |
These rules can't be checked automatically. | |
These rules could be checked automatically in theory, but not by ROSE. | |
ROSE could check these rules if it recognized macro usage. | |
ROSE could check these rules if it operated on multiple files at once. | |
ROSE could enforce this rule, but could not avoid catching some false positives. |
At this point, all rules should have one of these tags. That is, they should be completely or partially checked by ROSE, or they should be marked 'rose-possible', in that we will try to check them with ROSE, or they should have one of the nonapplicable tags indicating we don't think they can be checked with ROSE.
...
It might also be worth giving these another look.
ARR34-C. Ensure that array types in assignment expressions are compatible
FLP33-C. Prevent decimal errors when converting from integers to floating point numbers
MSC08-A. Library functions should validate their parameters
EXPxx-A. Always use sizeof operator to retrieve datatype sizes
DAN30-A. Create a copy constructor and assignment operator for non copyable objects
MSC31-C. Ensure return values are compared against the proper type
INT14-A. Avoid pointer to integer and integer to pointer conversions
MSC05-A. Do not make assumptions about the type of time_t and clock_t
EXP07-A. Use caution with NULL and 0, especially concerning pointers
MSC09-A Character Encoding - Use Subset of ASCII for Safety
MSC10-A Character Encoding - UTF8 Related Issues
FIO09-A. fflush() should be called after writing to an output stream has completed.
Ensure every has function has a function prototype
Use setlocale() carefully (DRAFT)
MEM38-C. Use Flexible Array Members for dynamically sized structures
MSC07-A. Avoid race conditions with signal handlers
MEM05-A. Avoid large stack allocations
MSC06-A. Avoid race conditions with multiple threads
DCL05-A. Do not use identifiers with different linked classifications
DCL05-A. Do not convert a function pointer to a function of a different type
Understand that strtok() modifies its string argument
Do not cast pointers between objects with differing alignments
Parenthesize library functions to prevent naming conflicts
Don't use a function pointer whose type is not compatible to pointed to type ~Draft~
Only use values for fsetpos that are returned from fgetpos ~Draft~
Minimize the use of enviroment variables ~Draft~
DCL06-A. Use meaningful symbolic constants to represent literal values
STR05-A. String Literals should only be assigned to constant pointers
EXP08-A. Ensure pointer arithmetic is used correctly
ENV04-A. Do not call system() if you do not need a command interpreter
MSC08-A. Do not perform unbounded copy on returned strings of calls to GNU gettext functions
Overall formatting / editing is poor, reference section unfinished.
Do not assume the layout of bitfields in memory (draft)
Do not name a file the same as a standard library in the typical path to search for libraries
Do not assume that an environmental variable is unique based on the name (draft)
Do not unlock or destroy another process's mutex (draft)
Disallow particular characters in file names (draft)
...