From: Michal Simek Date: Mon, 29 Aug 2011 23:30:13 +0000 (+0000) Subject: net: Check network device driver name X-Git-Tag: v2011.09-rc1~64 X-Git-Url: https://git.librecmc.org/?a=commitdiff_plain;h=58c583b;p=oweals%2Fu-boot.git net: Check network device driver name If name is longer than allocated space NAMESIZE mac address is rewritten which show error message like: Error message: Warning: Xlltemac.87000000 MAC addresses don't match: Address in SROM is 30:00:00:00:00:00 Address in environment is 00:0a:35:00:6a:04 NAMESIZE contains Driver name + zero terminated character. Signed-off-by: Michal Simek --- diff --git a/net/eth.c b/net/eth.c index a34fe59383..c9b7e85e39 100644 --- a/net/eth.c +++ b/net/eth.c @@ -224,6 +224,14 @@ int eth_write_hwaddr(struct eth_device *dev, const char *base_name, int eth_register(struct eth_device *dev) { struct eth_device *d; + + size_t len = strlen(dev->name); + if (len >= NAMESIZE) { + printf("Network driver name is too long (%zu >= %zu): %s\n", + len, NAMESIZE, dev->name); + return -1; + } + if (!eth_devices) { eth_current = eth_devices = dev; eth_current_changed();