Passwords for the RFB protocol (VNC) are used to DES-encrypt a challenge token sent by the server. However, each byte in the key is reversed before it is used for encryption.
Of course, this happens only once per connection so there's generally not much of a need for it to be particularly fast.
This is absolutely unacceptable, and the main reason I still use a SoundBlaster Live instead of my onboard sound. The SBLive can do hardware mixing and the Linux driver makes this transparent, so even OSS programs can run simultaneously.
ALSA is supposed to be able to do this transparently (in software) with dmix, but in my experience that only works with ALSA-aware programs, not those using the OSS API. I don't care that on Linux OSS is deprecated: it should just work.
In short, Linux sound is still obnoxious unless you are lucky enough to have hardware mixing work, or you only use programs which properly deal with ALSA.
According to section 6.7.5.2p1 of C99: “If the expression is a constant expression, it shall have a value greater than zero.”
The “expression” here refers to an expression in between [] in an array declaration; so the declaration of size 0 is a constraint violation and requires a diagnostic. You can get gcc and clang to issue a relevant diagnostic with “-std=c99 -pedantic”.
This "shall" is not listed under "Constraints", so violation of it is undefined behavior and does not require a diagnostic. See 4 (Conformance):
If a ‘‘shall’’ or ‘‘shall not’’ requirement that appears outside of a constraint is violated, the behavior is undefined.
This is an area where a compiler can (sometimes) see violations, though, so I think gcc should diagnose when possible, in the same vein as format specifier mismatches in printf().
Of course, this happens only once per connection so there's generally not much of a need for it to be particularly fast.