semantically valid for the protocol's specification, but it might be semantically invalid (too
large) for the product's intended policy. When the stack-based overflow occurs, this modifies
adjacent variables and violates the intended non-mutability of the stack. When the shellcode is
actually executed after the overflow has occurred, that same input is semantically invalid at the