...
Code Block | ||||
---|---|---|---|---|
| ||||
/* #include <stdlib.h> is missing */ int main(void) { size_t i; for (i = 0; i < 100; ++i) { char *ptr = (char*)malloc(0x10000000); /* int malloc() assumed */ *ptr = 'a'; } return 0; } |
When compiled with Microsoft Visual Studio (a C90-only platform), this noncompliant code example will eventually cause an access violation when dereferencing ptr
in the loop.
...
Code Block | ||||
---|---|---|---|---|
| ||||
#include <limits.h> #include <stdio.h> unsigned int foo(void) { return UINT_MAX; } int main(void) { long long c = foo(); printf("%lld\n", c); return 0; } |
...
Risk Assessment
Occurrences of an omitted type specifier in existing code are rare, and the consequences are generally minor, perhaps resulting in abnormal program termination.
...