Return-oriented programming

  • Forth has it right: One data stack and one return stack. Though you could argue that using unsafe languages is the real problem I suppose.