Subject: Re: [1/1] netlink: fix broadcasting to the wrong group.

From: Patrick McHardy <[email-masked]>
Date: Mon, 17 Apr 2006 22:14:58 +0200

Evgeniy Polyakov wrote:
> On Mon, Apr 17, 2006 at 05:35:04PM +0200, Patrick McHardy ([email-masked]) wrote:
> 
>>This seems to be a misunderstanding, subscribing to groups using bind()
>>is kept for compatibility and doesn't use group numbers but bitmasks.
> 
> 
> So groups less than 32 are considered as bitmask, and other groups as
> group numbers, and there is no way to have them consistent and behave
> like group numbers?

Not exactly, its not related to the group number. groups used in bind()
are considered as bitmask and groups used for setsockopt are considered
as group numbers. We can't change bind() because this behaviour is
required for compatibility.

> But this introduce some problem with subscribing - if one subscribes to
> group 5 and is bound to the same group it allows to broadcast not only
> to group 5, and those which have the same bits set, but also to group 16
> (1<<(5-1)), which has nothing in common with the requested group number.

Only if you use group numbers for bind(), which is plainly wrong.