On Wed, 21 Dec 2005 21:55:27 +0200
[email protected] wrote:
> I did a compile with extra gcc warnings, and found a bug in
> net/bridge/br_stp_if.c function br_stp_recalculate_bridge_id():
> compare_ether_addr() returns 0 if match, positive if not, so
> checking it for negative is wrong.
>
> Signed-of-by: Mika Kukkonen <[email protected]>
>
> ---
>
> net/bridge/br_stp_if.c | 2 +-
> 1 files changed, 1 insertions(+), 1 deletions(-)
>
> diff --git a/net/bridge/br_stp_if.c b/net/bridge/br_stp_if.c
> index ac09b6a..08c52c2 100644
> --- a/net/bridge/br_stp_if.c
> +++ b/net/bridge/br_stp_if.c
> @@ -158,7 +158,7 @@ void br_stp_recalculate_bridge_id(struct
>
> list_for_each_entry(p, &br->port_list, list) {
> if (addr == br_mac_zero ||
> - compare_ether_addr(p->dev->dev_addr, addr) < 0)
> + compare_ether_addr(p->dev->dev_addr, addr))
> addr = p->dev->dev_addr;
>
> }
Actually that compare_ether_addr needs to be replaced by memcmp again.
Because for bridge id calc it wants the min() of all the device addresses.
--
Stephen Hemminger <[email protected]>
OSDL http://developer.osdl.org/~shemminger
-
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to [email protected]
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/
[Index of Archives]
[Kernel Newbies]
[Netfilter]
[Bugtraq]
[Photo]
[Stuff]
[Gimp]
[Yosemite News]
[MIPS Linux]
[ARM Linux]
[Linux Security]
[Linux RAID]
[Video 4 Linux]
[Linux for the blind]
[Linux Resources]