Versions Compared

Key

  • This line was added.
  • This line was removed.
  • Formatting was changed.

...

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;
}

...