These are rules and recommendations for functions that are defined as part of the POSIX family of standards but are not included in ISO/IEC 9899-1999. These rules and recommendations are not part of the core standard because they do not apply in all C language applications and because they represent an incomplete list. The intent of providing these rules is to demonstrate how rules and recommendations for other standards or specific implementations may be integrated with the core C99 recommendations.
Recommendations
POS00-A. Avoid race conditions with multiple threads
POS01-A. Check for the existence of links
POS02-A. Be careful using errno with multiple threads
Rules
POS30-C. Use the readlink() function properly
POS31-C. Do not unlock or destroy another thread's mutex
POS32-C. Include a mutex when using bit-fields in a multi-threaded environment
POS34-C. Do not call putenv() with a pointer to an automatic variable as the argument
POS35-C. Avoid race conditions while checking for the existence of a symbolic link
Risk Assessment
Recommendation |
Severity |
Likelihood |
Remediation Cost |
Priority |
Level |
|---|---|---|---|---|---|
POS00-A |
2 (medium) |
2 (probable) |
1 (high) |
P4 |
L3 |
POS01-A |
2 (medium) |
3 (likely) |
1 (high) |
P6 |
L2 |
POS02-A |
1 (low) |
1 (unlikely) |
1 (high) |
P1 |
L3 |
Rule |
Severity |
Likelihood |
Remediation Cost |
Priority |
Level |
|---|---|---|---|---|---|
POS30-C |
1 (low) |
2 (probable) |
2 (medium) |
P4 |
L3 |
POS31-C |
2 (medium) |
2 (probable) |
1 (high) |
P4 |
L3 |
POS32-C |
2 (medium) |
2 (probable) |
2 (medium) |
P8 |
L2 |
POS33-C |
1 (low) |
2 (probable) |
3 (low) |
P6 |
L2 |
POS34-C |
3 (high) |
1 (unlikely) |
2 (medium) |
P6 |
L2 |
POS35-C |
3 (high) |
3 (likely) |
2 (medium) |
P18 |
L1 |
MSC31-C. Ensure that return values are compared against the proper type 14. Miscellaneous (MSC) POS00-A. Avoid race conditions with multiple threads