Skip to contentSkip to conversation

rose_dev: fix memcpy-bug in rose_set_mac_address

PATCH In review Daniel Borkmann 2 participants 2 messages Mar 27, 2012 – Mar 28, 2012

Subsystems (2)
lore
Share & tools
lore
#0 lore raw

PATCH 1/1 rose_dev: fix memcpy-bug in rose_set_mac_address

This patch fixes a small bug in rose_set_mac_address. If the current and new MAC addresses match, then nothing needs to be done. However memcpy was used instead of memcmp for comparison.

The patch is against the latest net-tree.

---
 net/rose/rose_dev.c |    2 +-
 1 files changed, 1 insertions(+), 1 deletions(-)
net/rose/rose_dev.c +1 -1
index 178ff4f..3c5ce5e 100644
@@ -96,7 +96,7 @@ static int rose_set_mac_address(struct net_device *dev, void *addr)
 	struct sockaddr *sa = addr;
 	int err;
 
-	if (!memcpy(dev->dev_addr, sa->sa_data, dev->addr_len))
+	if (!memcmp(dev->dev_addr, sa->sa_data, dev->addr_len))
 		return 0;
 
 	if (dev->flags & IFF_UP) {
maintainer
#1 lore raw

From: Daniel Borkmann <[email protected]>
Date: Tue, 27 Mar 2012 15:27:56 +0200

Quoted 7 lines

This patch fixes a small bug in rose_set_mac_address. If the current and new MAC addresses match, then nothing needs to be done. However memcpy was used instead of memcmp for comparison.

The patch is against the latest net-tree.

You're breaking this code, not fixing it.

If you don't keep the memcpy, then the calls right below which setup the loopback node will use the previous device address not the new one being configured.