Problem: Attempt to free a misaligned heap block.
Possible causes: Passing an improperly aligned pointer to free() or realloc(); changing the pointer returned by malloc.
Example:
char *ptr = (char *)malloc(4); ptr++; free(ptr); /* Misaligned free */