Created attachment 301451 [details] test program demonstrating the bug I'm not sure if this is a bug—I haven't fully read specs and perhaps it's within spec for OOBINLINE or TCP or something—but it certainly looks like one. The attached test program demonstrates the bug, and probably more clearly than any verbal description. It sends and receives a byte of OOB data over a (loopback) socket pair, sets the receiving socket to SO_OOBINLINE, and then calls recv() again (without MSG_OOB). This results in the same byte being received again. If on the other hand a recv() call is made before setting SO_OOBINLINE [guarded out with if(0)], the offending call does not succeed, which heightens my suspicion that this is a bug.
FWIW, I don't think this is a high priority. It's something that came up while trying to write Wine unit tests, so it certainly isn't known to affect any real applications.