Browse Source

dm: eth: Correctly detect alias in eth_get_dev_by_name()

When given a device name string, we should test to see if it is
really an alias like "eth#".

Signed-off-by: Bin Meng <bmeng.cn@gmail.com>
Acked-by: Joe Hershberger <joe.hershberger@ni.com>
Bin Meng 9 years ago
parent
commit
e408c42189
1 changed files with 3 additions and 2 deletions
  1. 3 2
      net/eth.c

+ 3 - 2
net/eth.c

@@ -195,10 +195,11 @@ struct udevice *eth_get_dev_by_name(const char *devname)
 	const char *startp = NULL;
 	struct udevice *it;
 	struct uclass *uc;
+	int len = strlen("eth");
 
 	/* Must be longer than 3 to be an alias */
-	if (strlen(devname) > strlen("eth")) {
-		startp = devname + strlen("eth");
+	if (!strncmp(devname, "eth", len) && strlen(devname) > len) {
+		startp = devname + len;
 		seq = simple_strtoul(startp, &endp, 10);
 	}