...
This example, inspired by Fortify demonstrates how dead code can be introduced into a program. The second conditional statement, if (s)
may never evaluate true . It because it requires that condition
be non-null, while on s
not be assigned NULL
. However, the only path where s
can be assigned a non-null NULL
value there is ends with a return statement.
Code Block |
---|
int func(int condition) { int *s = NULL; if (condition) { s = malloc(10); if (s == NULL) { /* Handle Error */ } /* insert data into s */ return 0; } /* ... */ if (s) { /* This code is never reached */ } } |