Pages that need work have an incomplete tag
Pages that need to be deleted have a deleteme tag.


Here is a rule that looks like it needs some work:

TMP30-C. Temporary files must be created with unique and unpredictable file names


For David: Can you add the malloc() example from the Mark Dowd Flash null pointer vul to MEM32-C. Detect and handle memory allocation errors


FIO43-C. Do not copy data from an unbounded source to a fixed-length array and STR35-C. Do not copy data from an unbounded source to a fixed-length array are the same rule, what's the deal? -alexv


In all rules, nullify free'd pointers. That is, add p = NULL; after instances of free(p);. Within reason of course...if p was local, and the next statement was return don't bother.


The following rule in the array section needs to be written:

ARR36-C. Do not subtract or compare two pointers that do not refer to the same array -started cjohns 4/8

cjohns: this looks done, can you verify and remove from TODO? or if more needs to be done, can you leave it as a comment?  thx - alexv 4/17 

Christina has just verified to me that this is done. -svoboda 4/25


The following rule needs to be completed.

ARR37-C. Do not add or subtract an integer to a pointer to a non-array object -started cjohns 4/8

cjohns: this looks done, can you verify and remove from TODO? or if more needs to be done, can you leave it as a comment?  thx - alexv 4/17

Christina has just verified to me that this is done. -svoboda 4/25


The Risk Assessment Summary tables for each section need to be updated (they are out of date with the actual rules). - I got as far as EXP07, which still has the risk assessment for EXP10

i went through on 4/15 and checked to make sure the section tables matched the rules... are we confident that the risk summaries in the rules are correct? -alexv 4/17 


The forward backward navigation links between sections need to be checked and fixed. -started 4/25 cjohns

The main page of DCL has a forward button to the first recommendation. should they all have this? -4/25 cjohns  


Rule/Recommendation about trap representations


Rule/Recommendation about floating point exceptions

I thought Abhijit Rao was going to replace FLP02-A with FLP03-A. Detect and handle floating point errors, but instead he create a new recommendation.

I think the plan should be to consolidate these two recommendations into FLP02-A. This will also solve the problem that "FLP02 is missing a risk assessment"


In all the rules, replace hard-wired 'magic' numbers with enums, as per DCL06-A

So take examples like:

char buff[50];

and change them to:

enum {buff_max = 50};
  char buff[buff_max];

I've looked at some of the C rules and recommendations, and here are my
recommendations (smile) for copying them across to C++.

DCL05-A - OK more-or-less as is.
DCL06-A - OK more-or-less as is.
DCL07-A - needs rethinking for C++.
DCL09-A - not appropriate for C++ because of ERR00-A.
DCL10-A - needs some reworking for C++ (note that ISO/IEC 14882-2003
does not use the term "variadic function").
DCL11-A - ditto.
DCL12-A - perhaps needs reworking for C++.
DCL30-C - needs reworking for C++.
DCL32-C - what are the C++ requirements on identifier length?
DCL33-C - not applicable?
DCL34-C - OK more-or-less as is.
DCL35-C - OK more-or-less as is, but need to change printf's in CS.
DCL36-C - needs reworking for C++.

EXP00-A - OK more-or-less as is.
EXP01-A - needs different examples.
EXP03-A - needs different examples.
EXP04-A - OK more-or-less as is.
EXP07-A - needs rethinking for C++.
EXP08-A - perhaps already covered by OBJ30-C.
EXP09-A - OK more-or-less as is.
EXP34-C - perhaps covered by DAN34-C.
EXP35-C - this appears to require some rethinking anyway.
EXP36-C - needs some thought for C++.

INT00-A - needs reworking for C++.
INT07-A - needs reworking for C++.
INT30-C - needs reworking for C++.
INT35-C - needs reworking for C++.
INT37-C - needs reworking for C++.

That's as far as I got.

By "OK more-or-less as is" I mean that it can be copied over as it is
but the references to C and the C Standard clearly must be changed to
C++.


When you copy this rule over to the C++ side:

FIO34-C. Use int to capture the return value of character IO functions

Be sure to add something about istream::get() which return int values, not char values.


MEM36-C. Do not store an address into an object with a longer lifetime says it is marked for deletion... does anything need to be done about this? should we move it to the void? -alexv 4/22