Common software vulnerabilities, Part I: heap overflows