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:	Wed, 13 May 2009 09:20:25 +0800
From:	Wei Yongjun <yjwei@...fujitsu.com>
To:	Jiri Pirko <jpirko@...hat.com>
CC:	netdev@...r.kernel.org, davem@...emloft.net, sfr@...b.auug.org.au,
	sachinp@...ibm.com
Subject: Re: [PATCH net-next] net: remove needless (now buggy) & from	dev->dev_addr

Jiri Pirko wrote:
> Patch fixes issues with dev->dev_addr changing from array to pointer.
> Hopefully there are no others.
>
> Compile tested only.
>
> Signed-off-by: Jiri Pirko <jpirko@...hat.com>
>
> diff --git a/drivers/net/bonding/bond_3ad.c b/drivers/net/bonding/bond_3ad.c
> index 8c2e5ab..06009dc 100644
> --- a/drivers/net/bonding/bond_3ad.c
> +++ b/drivers/net/bonding/bond_3ad.c
> @@ -1845,9 +1845,10 @@ static u16 aggregator_identifier;
>   * Can be called only after the mac address of the bond is set.
>   */
>  void bond_3ad_initialize(struct bonding *bond, u16 tick_resolution, int lacp_fast)
> -{                         
> +{
>  	// check that the bond is not initialized yet
> -	if (MAC_ADDRESS_COMPARE(&(BOND_AD_INFO(bond).system.sys_mac_addr), &(bond->dev->dev_addr))) {
> +	if (MAC_ADDRESS_COMPARE(&(BOND_AD_INFO(bond).system.sys_mac_addr),
> +				bond->dev->dev_addr)) {
>  
>  		aggregator_identifier = 0;
>  
> diff --git a/drivers/net/ibmveth.c b/drivers/net/ibmveth.c
> index 7902e5e..53af71a 100644
> --- a/drivers/net/ibmveth.c
> +++ b/drivers/net/ibmveth.c
> @@ -1374,8 +1374,8 @@ static void ibmveth_proc_unregister_driver(void)
>  static int ibmveth_show(struct seq_file *seq, void *v)
>  {
>  	struct ibmveth_adapter *adapter = seq->private;
> -	char *current_mac = ((char*) &adapter->netdev->dev_addr);
> -	char *firmware_mac = ((char*) &adapter->mac_addr) ;
> +	char *current_mac = (char *) adapter->netdev->dev_addr;
> +	char *firmware_mac = (char *) &adapter->mac_addr;
>  
>  	seq_printf(seq, "%s %s\n\n", ibmveth_driver_string, ibmveth_driver_version);
>  
> diff --git a/drivers/net/wireless/hostap/hostap_hw.c b/drivers/net/wireless/hostap/hostap_hw.c
> index 3dad1cf..ff9b5c8 100644
> --- a/drivers/net/wireless/hostap/hostap_hw.c
> +++ b/drivers/net/wireless/hostap/hostap_hw.c
> @@ -1423,7 +1423,7 @@ static int prism2_hw_init2(struct net_device *dev, int initial)
>  		prism2_check_sta_fw_version(local);
>  
>  		if (hfa384x_get_rid(dev, HFA384X_RID_CNFOWNMACADDR,
> -				    &dev->dev_addr, 6, 1) < 0) {
> +				    dev->dev_addr, 6, 1) < 0) {
>  			printk("%s: could not get own MAC address\n",
>  			       dev->name);
>  		}
> diff --git a/drivers/net/wireless/ray_cs.c b/drivers/net/wireless/ray_cs.c
> index fa90d1d..22e7185 100644
> --- a/drivers/net/wireless/ray_cs.c
> +++ b/drivers/net/wireless/ray_cs.c
> @@ -892,7 +892,7 @@ static int ray_dev_init(struct net_device *dev)
>  #endif /* RAY_IMMEDIATE_INIT */
>  
>  	/* copy mac and broadcast addresses to linux device */
> -	memcpy(&dev->dev_addr, &local->sparm.b4.a_mac_addr, ADDRLEN);
> +	memcpy(dev->dev_addr, &local->sparm.b4.a_mac_addr, ADDRLEN);
>  	memset(dev->broadcast, 0xff, ETH_ALEN);
>  
>  	DEBUG(2, "ray_dev_init ending\n");
> diff --git a/net/ipv6/ip6_tunnel.c b/net/ipv6/ip6_tunnel.c
> index d994c55..af256d4 100644
> --- a/net/ipv6/ip6_tunnel.c
> +++ b/net/ipv6/ip6_tunnel.c
> @@ -1100,8 +1100,8 @@ static void ip6_tnl_link_config(struct ip6_tnl *t)
>  	struct ip6_tnl_parm *p = &t->parms;
>  	struct flowi *fl = &t->fl;
>  
> -	memcpy(&dev->dev_addr, &p->laddr, sizeof(struct in6_addr));
> -	memcpy(&dev->broadcast, &p->raddr, sizeof(struct in6_addr));
> +	memcpy(dev->dev_addr, &p->laddr, sizeof(struct in6_addr));
> +	memcpy(dev->broadcast, &p->raddr, sizeof(struct in6_addr));
>  
>  	/* Set up flowi template */
>  	ipv6_addr_copy(&fl->fl6_src, &p->laddr);
> diff --git a/net/tipc/eth_media.c b/net/tipc/eth_media.c
> index f72ba77..524ba56 100644
> --- a/net/tipc/eth_media.c
> +++ b/net/tipc/eth_media.c
> @@ -167,7 +167,7 @@ static int enable_bearer(struct tipc_bearer *tb_ptr)
>  	tb_ptr->mtu = dev->mtu;
>  	tb_ptr->blocked = 0;
>  	tb_ptr->addr.type = htonl(TIPC_MEDIA_TYPE_ETH);
> -	memcpy(&tb_ptr->addr.dev_addr, &dev->dev_addr, ETH_ALEN);
> +	memcpy(&tb_ptr->addr.dev_addr, dev->dev_addr, ETH_ALEN);
>  	return 0;
>  }
>   
missing this one:

diff -u -p a/llc/af_llc.c b/llc/af_llc.c
--- a/llc/af_llc.c 2009-03-28 04:06:16.000000000 +0800
+++ b/llc/af_llc.c 2009-05-12 16:36:26.000000000 +0800
@@ -935,7 +935,7 @@ static int llc_ui_getname(struct socket 
 
 		if (llc->dev) {
 			sllc.sllc_arphrd = llc->dev->type;
-			memcpy(&sllc.sllc_mac, &llc->dev->dev_addr,
+			memcpy(&sllc.sllc_mac, llc->dev->dev_addr,
 			       IFHWADDRLEN);
 		}
 	}


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