Secure Coding Standard » History » Version 4
Andreas Steffen, 27.05.2013 20:30
Completed PRE recommendations and rules
1 | 1 | Andreas Steffen | h1. Secure Coding Standard |
---|---|---|---|
2 | 1 | Andreas Steffen | |
3 | 1 | Andreas Steffen | The strongSwan project adheres to the following rules recommended by the "CERT C Secure Coding Standard":https://www.securecoding.cert.org/confluence/display/seccode/CERT+C+Secure+Coding+Standard: |
4 | 1 | Andreas Steffen | |
5 | 1 | Andreas Steffen | h2. Preprocessor (PRE) |
6 | 1 | Andreas Steffen | |
7 | 2 | Andreas Steffen | h3. Full Adherence |
8 | 2 | Andreas Steffen | |
9 | 2 | Andreas Steffen | * "PRE03-C. Prefer typedefs to defines for encoding types":https://www.securecoding.cert.org/confluence/display/seccode/PRE03-C.+Prefer+typedefs+to+defines+for+encoding+types |
10 | 2 | Andreas Steffen | |
11 | 2 | Andreas Steffen | * "PRE04-C. Do not reuse a standard header file name":https://www.securecoding.cert.org/confluence/display/seccode/PRE04-C.+Do+not+reuse+a+standard+header+file+name |
12 | 2 | Andreas Steffen | |
13 | 3 | Andreas Steffen | * "PRE06-C. Enclose header files in an inclusion guard":https://www.securecoding.cert.org/confluence/display/seccode/PRE06-C.+Enclose+header+files+in+an+inclusion+guard |
14 | 3 | Andreas Steffen | |
15 | 4 | Andreas Steffen | * "PRE09-C. Do not replace secure functions with deprecated or obsolescent functions":https://www.securecoding.cert.org/confluence/display/seccode/PRE09-C.+Do+not+replace+secure+functions+with+deprecated+or+obsolescent+functions |
16 | 4 | Andreas Steffen | |
17 | 2 | Andreas Steffen | h3. Partial Adherence |
18 | 2 | Andreas Steffen | |
19 | 2 | Andreas Steffen | * "PRE00-C. Prefer inline or static functions to function-like macros ":https://www.securecoding.cert.org/confluence/display/seccode/PRE00-C.+Prefer+inline+or+static+functions+to+function-like+macros |
20 | 2 | Andreas Steffen | |
21 | 2 | Andreas Steffen | * "PRE01-C. Use parentheses within macros around parameter names":https://www.securecoding.cert.org/confluence/display/seccode/PRE01-C.+Use+parentheses+within+macros+around+parameter+names |
22 | 2 | Andreas Steffen | |
23 | 2 | Andreas Steffen | * "PRE02-C. Macro replacement lists should be parenthesized":https://www.securecoding.cert.org/confluence/display/seccode/PRE02-C.+Macro+replacement+lists+should+be+parenthesized |
24 | 3 | Andreas Steffen | |
25 | 3 | Andreas Steffen | h3. Check Adherence |
26 | 3 | Andreas Steffen | |
27 | 3 | Andreas Steffen | * "PRE05-C. Understand macro replacement when concatenating tokens or performing stringification":https://www.securecoding.cert.org/confluence/display/seccode/PRE05-C.+Understand+macro+replacement+when+concatenating+tokens+or+performing+stringification |
28 | 3 | Andreas Steffen | |
29 | 1 | Andreas Steffen | * "PRE07-C. Avoid using repeated question marks":https://www.securecoding.cert.org/confluence/display/seccode/PRE07-C.+Avoid+using+repeated+question+marks |
30 | 4 | Andreas Steffen | |
31 | 4 | Andreas Steffen | * "PRE10-C. Wrap multistatement macros in a do-while loop":https://www.securecoding.cert.org/confluence/display/seccode/PRE10-C.+Wrap+multistatement+macros+in+a+do-while+loop |
32 | 4 | Andreas Steffen | |
33 | 4 | Andreas Steffen | * "PRE11-C. Do not conclude macro definitions with a semicolon ":https://www.securecoding.cert.org/confluence/display/seccode/PRE11-C.+Do+not+conclude+macro+definitions+with+a+semicolon |
34 | 4 | Andreas Steffen | |
35 | 4 | Andreas Steffen | * "PRE12-C. Do not define unsafe macros":https://www.securecoding.cert.org/confluence/display/seccode/PRE12-C.+Do+not+define+unsafe+macros |
36 | 4 | Andreas Steffen | |
37 | 4 | Andreas Steffen | * "PRE30-C. Do not create a universal character name through concatenation":https://www.securecoding.cert.org/confluence/display/seccode/PRE30-C.+Do+not+create+a+universal+character+name+through+concatenation |
38 | 4 | Andreas Steffen | |
39 | 4 | Andreas Steffen | * "PRE31-C. Avoid side-effects in arguments to unsafe macros":https://www.securecoding.cert.org/confluence/display/seccode/PRE31-C.+Avoid+side-effects+in+arguments+to+unsafe+macros |
40 | 4 | Andreas Steffen | |
41 | 4 | Andreas Steffen | * "PRE32-C. Do not use preprocessor directives inside macro arguments":https://www.securecoding.cert.org/confluence/display/seccode/PRE32-C.+Do+not+use+preprocessor+directives+inside+macro+arguments |
42 | 3 | Andreas Steffen | |
43 | 3 | Andreas Steffen | h3. No Adherence |
44 | 3 | Andreas Steffen | |
45 | 3 | Andreas Steffen | * "PRE08-C. Guarantee that header file names are unique":https://www.securecoding.cert.org/confluence/display/seccode/PRE08-C.+Guarantee+that+header+file+names+are+unique |
46 | 2 | Andreas Steffen | |
47 | 1 | Andreas Steffen | h2. Declarations and Initialization (DCL) |
48 | 1 | Andreas Steffen | |
49 | 1 | Andreas Steffen | h2. Expressions (EXP) |
50 | 1 | Andreas Steffen | |
51 | 1 | Andreas Steffen | h2. Integers (INT) |
52 | 1 | Andreas Steffen | |
53 | 1 | Andreas Steffen | h2. Floating Point (FLP) |
54 | 1 | Andreas Steffen | |
55 | 1 | Andreas Steffen | h2. Arrays (ARR) |
56 | 1 | Andreas Steffen | |
57 | 1 | Andreas Steffen | h2. Characters and Strings (STR) |
58 | 1 | Andreas Steffen | |
59 | 1 | Andreas Steffen | h2. Memory Management (MEM) |
60 | 1 | Andreas Steffen | |
61 | 1 | Andreas Steffen | h2. Input Output (FIO) |
62 | 1 | Andreas Steffen | |
63 | 1 | Andreas Steffen | h2. Environment (ENV) |
64 | 1 | Andreas Steffen | |
65 | 1 | Andreas Steffen | h2. Signals (SIG) |
66 | 1 | Andreas Steffen | |
67 | 1 | Andreas Steffen | h2. Error Handling (ERR) |
68 | 1 | Andreas Steffen | |
69 | 1 | Andreas Steffen | h2. Application Programming Interfaces (API) |
70 | 1 | Andreas Steffen | |
71 | 1 | Andreas Steffen | h2. Concurrency (CON) |
72 | 1 | Andreas Steffen | |
73 | 1 | Andreas Steffen | h2. Miscellaneous (MSC) |
74 | 1 | Andreas Steffen | |
75 | 1 | Andreas Steffen | h2. POSIX (POS) |