rendered paste body--- linux-2.6.18-gentoo-r4-old/driver/net/tun.c 2007-03-10 22:15:57.000000000 +0100
+++ linux-2.6.18-gentoo-r4/drivers/net/tun.c 2006-12-28 14:04:22.000000000 +0100
@@ -521,6 +521,7 @@
*(u16 *)tun->dev_addr = htons(0x00FF);
get_random_bytes(tun->dev_addr + sizeof(u16), 4);
memset(tun->chr_filter, 0, sizeof tun->chr_filter);
+ memcpy(dev->dev_addr,tun->dev_addr,6);
tun_net_init(dev);
@@ -663,6 +664,8 @@
/** Set the character device's hardware address. This is used when
* filtering packets being sent from the network device to the character
* device. */
+ memcpy(tun->dev->dev_addr, ifr.ifr_hwaddr.sa_data,
+ min(sizeof ifr.ifr_hwaddr.sa_data, sizeof tun->dev_addr));
memcpy(tun->dev_addr, ifr.ifr_hwaddr.sa_data,
min(sizeof ifr.ifr_hwaddr.sa_data, sizeof tun->dev_addr));
DBG(KERN_DEBUG "%s: set hardware address: %x:%x:%x:%x:%x:%x\n",