Messages in this thread | | | From | (Eric W. Biederman) | Date | Wed, 03 Apr 2013 19:24:34 -0700 | Subject | Re: [ 105/124] af_unix: dont send SCM_CREDENTIAL when dest socket is NULL |
| |
Andy Lutomirski <luto@amacapital.net> writes:
> On Wed, Apr 3, 2013 at 5:47 PM, Eric W. Biederman <ebiederm@xmission.com> wrote: >> >> No. The patch is still bogus. >> >> If the problem is that we are not coallescing messages in stream_recvmsg >> we need a different fix. >> >> Probably something like: >> >> if (check_creds) { >> /* Never glue messages from different writers */ >> if ((UNIXCB(skb).pid != siocb->scm->pid) || >> (UNIXCB(skb).cred != siocb->scm->cred)) >> break; >> - } else { >> + } else if (test_bit(SOCK_PASSCRED, &sock->flags)) { >> /* Copy credentials */ >> scm_set_cred(siocb->scm, UNIXCB(skb).pid, UNIXCB(skb).cred); >> check_creds = 1; >> } > > I'm confused. Isn't this making the problem worse, not better?
For udev that is a don't care.
For the case where we are coallescing messages this ensures we always collaesce messages if we don't care about the credentials. Which turns out to be a fix for a long standing pessimization, that no on has bother to complain about.
> With my patches, the cost should go way down and it could be made > unconditional, but that's still probably not a good -stable change.
Reducing the cost and the complexity as far as we can is good, but we really want small steps as we optimize the case of sending credentials.
Eric
| |