Subject: Re: [PATCH] rds: Make rds_message_copy_from_user() return 0 on success.

From: Al Viro <[email-masked]>
Date: Thu, 5 Feb 2015 22:23:01 +0000

On Thu, Feb 05, 2015 at 05:07:34PM -0500, Sowmini Varadhan wrote:

> That was the one that git-bisect flagged for me.. I think this one
> had the iov_iter_init() in rds_sendmsg() itself?

No, it doesn't - it only touches recvmsg side of things.

> As I recall, this 
> change was already refactoring rds_message_copy_from_user() (and was the
> earliest version that was broken when I tested it)?
> 
> should it have been 'put iov_iter into msghdr'? I just wanted
> to make sure some innocent user would know how far back to go,
> if they wanted to not trip on this one.

Look at your own patch; it affects only sendmsg() path, as does
"rds: switch rds_message_copy_from_user() to iov_iter".  In fact, the code
it fixes had been introduced in that commit.  I agree that the bug is
there and I agree with your fix; the only problem I have is your interpretation
of bisect.  "rds: switch ->inc_copy_to_user() to passing iov_iter" is
the last one *not* to have that particular breakage.

Seriously, reread both commits and your fix:
"rds: switch ->inc_copy_to_user() to passing iov_iter" - only recvmsg side
"rds: switch rds_message_copy_from_user() to iov_iter" - only sendmsg side
your fix to rds_message_copy_from_user() - only sendmsg side