lists.openwall.net   lists  /  announce  owl-users  owl-dev  john-users  john-dev  passwdqc-users  yescrypt  popa3d-users  /  oss-security  kernel-hardening  musl  sabotage  tlsify  passwords  /  crypt-dev  xvendor  /  Bugtraq  Full-Disclosure  linux-kernel  linux-netdev  linux-ext4  PHC 
Open Source and information security mailing list archives
 
Hash Suite: Windows password security audit tool. GUI, reports in PDF.
[<prev] [next>] [<thread-prev] [thread-next>] [day] [month] [year] [list]
Date:	Fri, 28 Jun 2013 17:54:21 +0200
From:	Nicolas Dichtel <nicolas.dichtel@...nd.com>
To:	Stephen Hemminger <stephen@...workplumber.org>
CC:	Sven-Thorsten Dietrich <sven@...tta.com>,
	LKML <linux-kernel@...r.kernel.org>,
	Stephen Hemminger <shemminger@...tta.com>,
	"netdev@...r.kernel.org" <netdev@...r.kernel.org>,
	Mike Davison <Mike.Davison@...tta.com>
Subject: Re: [PATCH] Set the correct RTNL family for multicast netconf messages

Le 28/06/2013 17:26, Stephen Hemminger a écrit :
> On Thu, 27 Jun 2013 16:44:47 -0700
> Sven-Thorsten Dietrich <sven@...tta.com> wrote:
>
>> There may be other cases that require a special case, so I chose the switch approach.
>>
>> Please note, that all other messages from ipmr[6].c correctly set the family, while these do not.
>>
>> Thanks
>>
>> Sven
>>
>>
>>
>> Subject: Set correct RTNL family for multicast netconf messages
>> From: Sven-Thorsten Dietrich sven@...tta.com Thu Jun 27 16:40:17 2013 -0700
>> Date: Thu Jun 27 16:40:17 2013 -0700:
>>
>>
>> diff --git a/net/ipv4/devinet.c b/net/ipv4/devinet.c
>> index dfc39d4..695858b 100644
>> --- a/net/ipv4/devinet.c
>> +++ b/net/ipv4/devinet.c
>> @@ -1705,7 +1705,16 @@ static int inet_netconf_fill_devconf(struct sk_buff *skb, int ifindex,
>>   		return -EMSGSIZE;
>>
>>   	ncm = nlmsg_data(nlh);
>> -	ncm->ncm_family = AF_INET;
>> +
>> +	switch (type) {
>> +		case NETCONFA_MC_FORWARDING:
>> +			ncm->ncm_family = RTNL_FAMILY_IPMR;
>> +			break;
>> +
>> +		default:
>> +			ncm->ncm_family = AF_INET;
>> +			break;
>> +	}
>>
>>   	if (nla_put_s32(skb, NETCONFA_IFINDEX, ifindex) < 0)
>>   		goto nla_put_failure;
>> diff --git a/net/ipv6/addrconf.c b/net/ipv6/addrconf.c
>> index 4ab4c38..a177da4 100644
>> --- a/net/ipv6/addrconf.c
>> +++ b/net/ipv6/addrconf.c
>> @@ -492,7 +492,16 @@ static int inet6_netconf_fill_devconf(struct sk_buff *skb, int ifindex,
>>   		return -EMSGSIZE;
>>
>>   	ncm = nlmsg_data(nlh);
>> -	ncm->ncm_family = AF_INET6;
>> +
>> +	switch (type) {
>> +		case NETCONFA_MC_FORWARDING:
>> +			ncm->ncm_family = RTNL_FAMILY_IP6MR;
>> +			break;
>> +
>> +		default:
>> +			ncm->ncm_family = AF_INET6;
>> +			break;
>> +	}
>>
>>   	if (nla_put_s32(skb, NETCONFA_IFINDEX, ifindex) < 0)
>>   		goto nla_put_failure;
>>
>
> Found another issue that needs some thought.
> If type == ALL, in that case the family comes up as AF_INET.
> That means that if application is doing a request to get netconf
> it will receive a different answer than if it is montoring for netconf
> changes.
>
> One way to solve would be to split fill_devconf into two parts, one
> for unicast, and one for multicast.
If I understand well, to get all conf variables for IPv4, you will need to make 
two dump?

Note that the initial idea of netconf was to be able to dump via netlink the 
content of /proc/sys/net/ipv4/conf/ or /proc/sys/net/ipv6/conf/, hence 
AF_INET[6] was used to specify 'ipv4' or 'ipv6'.
--
To unsubscribe from this list: send the line "unsubscribe netdev" in
the body of a message to majordomo@...r.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html

Powered by blists - more mailing lists