part of c memory management
Segmentation fault (core dumped)
Program received signal SIGSEGV, Segmentation fault.
what it usually means:
likely causes in memory-management terms:
dereference of a zero pointer
use-after-free: freed chunk later reused, pointer retained, dereferenced after allocator repurposed or unmapped it
out-of-bounds write: overwrote a pointer or vtable-like function pointer, later control/data flow jumps to garbage address
returning or storing the address of a stack object past its lifetime, then dereferencing it later
calling free on a non-heap pointer: allocator metadata corrupted, later allocator activity dereferences junk and crashes
Bus error (core dumped)
what it usually means:
likely causes:
misaligned access on architectures that fault on alignment (less common on x86_64, more common elsewhere)
mmapped file truncation: accessing a page past the new end of file triggers SIGBUS
wild pointer that happens to point into a mapped region with constraints (alignment or device mapping)
Illegal instruction (core dumped)
what it usually means:
likely causes:
heap/stack corruption overwrote a return address or function pointer, control flow jumps into non-code bytes
use-after-free jumped through a function pointer inside an object whose storage was recycled
double free or corruption (!prev) Aborted (core dumped)
free(): invalid pointer Aborted (core dumped)
munmap_chunk(): invalid pointer Aborted (core dumped)
malloc(): corrupted top size Aborted (core dumped)
free(): invalid next size (fast) Aborted (core dumped)
corrupted size vs. prev_size Aborted (core dumped)
what it usually means:
likely causes by message class:
"double free":
"invalid pointer" / "munmap_chunk(): invalid pointer":
"corrupted top size" / "invalid next size" / "corrupted size vs prev_size":
diagnostic trap:
the abort often occurs in a later malloc/free, not at the original overwrite
*** stack smashing detected ***: terminated Aborted (core dumped)
what it usually means:
likely causes:
out-of-bounds write on a stack array
copying attacker-controlled or unchecked length into a local buffer
overwriting beyon a local struct that contains the canary-adjacent region
*** buffer overflow detected ***: terminated Aborted (core dumped)
*** invalid size (unsorted) ***: terminated Aborted (core dumped)
what it usually means:
likely causes:
passing a length larger than the destination object to memcpy/memmove/strcpy/strncpy/sprintf variants
using strlen on non-terminated memory then copying based on it
common symptom patterns:
likely causes: