ISAs regularly leave all kinds of behavior undefined when they think it doesn’t matter (such as the state of the arithmetic flags after operations that shouldn’t need to the tested).
(But this is also irrelevant: assembly can be completely wrong and exploitable while also being perfectly well defined.)
goto fail wasn't caused by ambiguity or undefined behavior. C's rules here are crystal clear, and conditional branches in assembly also do not make the following instructions condition (unless you're using delay slots à la SPARC).
Heartbleed also wasn't caused by ambiguity or undefined behavior, if you believe compiler writers.
woodruffw|2 years ago
(But this is also irrelevant: assembly can be completely wrong and exploitable while also being perfectly well defined.)
tromp|2 years ago
torstenvl|2 years ago
Heartbleed also wasn't caused by ambiguity or undefined behavior, if you believe compiler writers.
otikik|2 years ago
dickle|2 years ago
unknown|2 years ago
[deleted]