4 ms·
> I also don't understand the mindset behind the usage of the word "exploit" in this. See the dictionary definition a couple of comments down. It is the perfec
by pascal_cuoq 11y ago
> I also don't understand the mindset behind the usage of the word "exploit" in this.
See the dictionary definition a couple of comments down. It is the perfect word to use because the two points of view (“the compiler is right!” and “I don't understand, everyone has always been doing this and suddenly programs stop working, compilers are unfair”) are represented as meanings 1 and 2.
The point is to know when compiler makers have decided to optimize (rightly, as you point out is one point of view) undefined behavior that is used in the wild by programmers that assume that a specific behavior will ensue. Undefined behavior used in OpenSSL, NTPD, libotr. The canary helps detect that bad things are about to happen.
http://www.mail-archive.com/openssl-dev@openssl.org/msg38690.html http://www.mail-archive.com/openssl-dev@openssl.org/msg38690...
http://www.mail-archive.com/openssl-dev%40openssl.org/msg38528.html http://www.mail-archive.com/openssl-dev%40openssl.org/msg385...
http://trust-in-soft.com/dangling-pointer-indeterminate/ http://trust-in-soft.com/dangling-pointer-indeterminate/
http://sourcecodebrowser.com/libotr/3.2.0/b64_8c_source.html#l00121 http://sourcecodebrowser.com/libotr/3.2.0/b64_8c_source.html...
- Devthrowaway80 11y agoThat makes much more sense, I appreciate you replying.