...
In the compliant solution, theprogram the program has been changed to eliminate the possibility of str
referencing non-dynamic memory and when it is supplied to free()
.
Code Block |
---|
int main(int argc, char *argv[]) { char *str = NULL; if (argc == 2) { str = malloc(strlen(argv[1])); if (str == NULL) { /* Handle Allocation Error */ } strcpy(str, argv[1]); } else { printf("usage: $>a.exe [string]\n"); return 1; } /* ... */ free(str); return 0; } |
...