Hacker News new | past | comments | ask | show | jobs | submit login

I'm fairly inexperienced on this matter. Can you give a real life example where this would be a bad thing?



Well there is this bug: 'memcpy implementation optimized as a call to memcpy'

https://gcc.gnu.org/bugzilla/show_bug.cgi?id=56888

The terrifying thing is while the programmer might know that memset() isn't async-signal-safe and not use it in a signal handler, the compiler may blissfully and silently optimize the code to use memset() anyways. Odd crashes or worse security leaks may result.

Reminds me a bit of old floating point implemented in software. Some implementations had global scratchpad registers. Very weird things happened if you did any floating point operations in multiple threads.


If memset is actually not async signal safe on some target, and a compiler targetting the same does that transformation, the end results are very unsound...




Guidelines | FAQ | Lists | API | Security | Legal | Apply to YC | Contact

Search: