Message ID | 1314363160-18362-2-git-send-email-monstr@monstr.eu |
---|---|
State | Changes Requested |
Headers | show |
On Friday, August 26, 2011 08:52:40 Michal Simek wrote: > If name is longer than allocated space NAMESIZE > mac address is rewritten which show error > message like: since you overflowed the buffer, who knows what could happen ... > + if (strlen(dev->name) > NAMESIZE) { > + printf("Long(%d>%d) network driver name for %s\n", > + strlen(dev->name), NAMESIZE, dev->name); > + return 0; > + } 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; } -mike
Mike Frysinger wrote: > On Friday, August 26, 2011 08:52:40 Michal Simek wrote: >> If name is longer than allocated space NAMESIZE >> mac address is rewritten which show error >> message like: > > since you overflowed the buffer, who knows what could happen ... > >> + if (strlen(dev->name) > NAMESIZE) { >> + printf("Long(%d>%d) network driver name for %s\n", >> + strlen(dev->name), NAMESIZE, dev->name); >> + return 0; >> + } > > 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; > } ok. I see it is 15 chars space + terminated characters. Mike: Will you propose this patch or should I do it? Thanks, Michal
On Monday, August 29, 2011 04:07:14 Michal Simek wrote: > Mike Frysinger wrote: > > On Friday, August 26, 2011 08:52:40 Michal Simek wrote: > >> If name is longer than allocated space NAMESIZE > >> mac address is rewritten which show error > > > >> message like: > > since you overflowed the buffer, who knows what could happen ... > > > >> + if (strlen(dev->name) > NAMESIZE) { > >> + printf("Long(%d>%d) network driver name for %s\n", > >> + strlen(dev->name), NAMESIZE, dev->name); > >> + return 0; > >> + } > > > > 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; > > > > } > > ok. I see it is 15 chars space + terminated characters. > > Mike: Will you propose this patch or should I do it? since you've got stuff pending here, best for you to do it :) -mike
diff --git a/net/eth.c b/net/eth.c index 3aad71f..54231b1 100644 --- a/net/eth.c +++ b/net/eth.c @@ -191,6 +191,13 @@ static void eth_current_changed(void) int eth_register(struct eth_device *dev) { struct eth_device *d; + + if (strlen(dev->name) > NAMESIZE) { + printf("Long(%d>%d) network driver name for %s\n", + strlen(dev->name), NAMESIZE, dev->name); + return 0; + } + if (!eth_devices) { eth_current = eth_devices = dev; eth_current_changed();
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 Signed-off-by: Michal Simek <monstr@monstr.eu> --- net/eth.c | 7 +++++++ 1 files changed, 7 insertions(+), 0 deletions(-)