Problem: Attempt to free a heap block that has already been freed.
Possible causes: Calling free() more than once with the same pointer. In C++, using the delete operator more than once on the same pointer.
Example:
char *a = (char *)malloc(1); free(a); free(a); /* Duplicate free (duf) */