...
| 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.
...