Re: [ 105/124] af_unix: dont send SCM_CREDENTIAL when dest socket is NULL

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



Andy Lutomirski <luto@xxxxxxxxxxxxxx> writes:

> On Wed, Apr 3, 2013 at 5:47 PM, Eric W. Biederman <ebiederm@xxxxxxxxxxxx> 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

--
To unsubscribe from this list: send the line "unsubscribe stable" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at  http://vger.kernel.org/majordomo-info.html




[Index of Archives]     [Linux Kernel]     [Kernel Development Newbies]     [Linux USB Devel]     [Video for Linux]     [Linux Audio Users]     [Yosemite Hiking]     [Linux Kernel]     [Linux SCSI]