Two points:<p>- Data race leads to subtle bugs on all languages and runtimes, including Java and C#. They are just not called undefined behavior in those languages.<p>- char* and unsigned char* are allowed to alias any pointer. This is one of the exceptions to the strict aliasing rule.