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  linux-hardening  linux-cve-announce  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, 15 May 2015 18:45:43 +0000
From:	"Arad, Ronen" <ronen.arad@...el.com>
To:	"Rosen, Rami" <rami.rosen@...el.com>,
	"davem@...emloft.net" <davem@...emloft.net>,
	"netdev@...r.kernel.org" <netdev@...r.kernel.org>
CC:	"roopa@...ulusnetworks.com" <roopa@...ulusnetworks.com>
Subject: RE: [PATCH net-next] bridge: Fix setting a flag in
 br_fill_ifvlaninfo_range().



>-----Original Message-----
>From: Rosen, Rami
>Sent: Friday, May 15, 2015 7:27 AM
>To: davem@...emloft.net
>Cc: netdev@...r.kernel.org; roopa@...ulusnetworks.com; Arad, Ronen; Rosen,
>Rami
>Subject: [PATCH net-next] bridge: Fix setting a flag in
>br_fill_ifvlaninfo_range().
>
>This patch fixes setting of vinfo.flags in the br_fill_ifvlaninfo_range(). The
>assignment of vinfo.flags &= ~BRIDGE_VLAN_INFO_RANGE_BEGIN has no effect
>without
>this patch, as vinfo.flags value is overriden by the
>vinfo.flags = flags | BRIDGE_VLAN_INFO_RANGE_END assignement,  which follows
>it immedialtely.
>
>Signed-off-by: Rami Rosen <rami.rosen@...el.com>
>---
> net/bridge/br_netlink.c | 2 +-
> 1 file changed, 1 insertion(+), 1 deletion(-)
>
>diff --git a/net/bridge/br_netlink.c b/net/bridge/br_netlink.c
>index 6b67ed3..fec65bb 100644
>--- a/net/bridge/br_netlink.c
>+++ b/net/bridge/br_netlink.c
>@@ -167,7 +167,7 @@ static int br_fill_ifvlaninfo_range(struct sk_buff *skb,
>u16 vid_start,
> 		vinfo.flags &= ~BRIDGE_VLAN_INFO_RANGE_BEGIN;
>
> 		vinfo.vid = vid_end;
>-		vinfo.flags = flags | BRIDGE_VLAN_INFO_RANGE_END;
>+		vinfo.flags &= flags | BRIDGE_VLAN_INFO_RANGE_END;
> 		if (nla_put(skb, IFLA_BRIDGE_VLAN_INFO,
> 			    sizeof(vinfo), &vinfo))
> 			goto nla_put_failure;


The first part of " &= flags " has no impact as it reverts vinfo.flags to
just the bits set in the flags argument. This is exactly what
"vinfo.flags &= ~BRIDGE_VLAN_INFO_RANGE_BEGIN" does.

If original code was intended to indicate that the same flags are used for 
both start and end attributes except for the RANGE_BEGIN/RANGE_END flags
it would be sufficient to keep the line that clears RANGE_BEGIN bit and 
OR vinfo.flags with RANGE_END for the end attribute:

vinfo.flags |= BRIDGE_VLAN_INFO_RANGE_END;

If we want the code to show what is actually been written into each
attribute, the fix should be to just delete the line which clears 
RANGE_BEGIN flag.

In either case the code as exists today is working as expected. A fix is
only needed to improve readability.
 
>--
>1.9.3

--
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

Powered by Openwall GNU/*/Linux Powered by OpenVZ