Re: Stray nulls when reading from AF_UNIX sockets

From: Randy Dunlap
Date: Thu Sep 06 2007 - 12:10:27 EST


On Thu, 06 Sep 2007 17:48:07 +0200 Anders Blomdell wrote:

> Hi,
>
> With recent kernels (2.6.22.x), we are experiencing that random null characters
> are read by our mySQL server (i.e. the number of bytes read by the server is
> larger than the number of bytes written). I'm currently investigating the
> problem (that occurs every 1-35 hours on a loaded system). A current suspect is
> the following code in net/unix/af_unix.c:
>
> static int unix_stream_recvmsg(struct kiocb *iocb, struct socket *sock,
> struct msghdr *msg, size_t size,
> int flags)
> {
> ...
> return copied ? : err;
> }
>
> Shouldn't this read:
>
> return copied ? copied : err;
>
> Or am I missing something?
>
> Please CC me personally.

It's (?:) a gcc extension. See

http://gcc.gnu.org/onlinedocs/gcc-4.2.1/gcc/Conditionals.html#Conditionals

---
~Randy
*** Remember to use Documentation/SubmitChecklist when testing your code ***
-
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/