Message ID | 1315802993-12798-1-git-send-email-vapier@gentoo.org |
---|---|
State | Accepted |
Commit | ff25d32c25acd78bac339254108b132178f294b8 |
Delegated to: | Wolfgang Denk |
Headers | show |
On Monday, September 12, 2011 06:49:53 AM Mike Frysinger wrote: > The new sanity check introduces a printf warning for some systems: > eth.c:233: warning: format '%zu' expects type 'size_t', but argument 3 has > type 'int' > > Rather than tweak the format string, use the new assert() helper instead. > > Signed-off-by: Mike Frysinger <vapier@gentoo.org> > --- > net/eth.c | 7 +------ > 1 files changed, 1 insertions(+), 6 deletions(-) > > diff --git a/net/eth.c b/net/eth.c > index 5911b1c..02baa37 100644 > --- a/net/eth.c > +++ b/net/eth.c > @@ -227,12 +227,7 @@ 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; > - } > + assert(strlen(dev->name) < NAMESIZE); Aren't you changing the logic here ? Cheers > > if (!eth_devices) { > eth_current = eth_devices = dev;
On Monday, September 12, 2011 01:08:50 Marek Vasut wrote: > On Monday, September 12, 2011 06:49:53 AM Mike Frysinger wrote: > > --- a/net/eth.c > > +++ b/net/eth.c > > > > - 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; > > - } > > + assert(strlen(dev->name) < NAMESIZE); > > Aren't you changing the logic here ? pretty sure it's the same. old code would warn when "len >= max", while mine asserts that "len < max" and thus aborts when "!(len < max)" and based on boolean logic, "(x >= y) == !(x < y)". -mike
On Monday, September 12, 2011 06:29:10 PM Mike Frysinger wrote: > On Monday, September 12, 2011 01:08:50 Marek Vasut wrote: > > On Monday, September 12, 2011 06:49:53 AM Mike Frysinger wrote: > > > --- a/net/eth.c > > > +++ b/net/eth.c > > > > > > - 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; > > > - } > > > + assert(strlen(dev->name) < NAMESIZE); > > > > Aren't you changing the logic here ? > > pretty sure it's the same. old code would warn when "len >= max", while > mine asserts that "len < max" and thus aborts when "!(len < max)" and > based on boolean logic, "(x >= y) == !(x < y)". > -mike The old code return -1, doesn't abort ;-)
On Monday, September 12, 2011 13:06:13 Marek Vasut wrote: > On Monday, September 12, 2011 06:29:10 PM Mike Frysinger wrote: > > On Monday, September 12, 2011 01:08:50 Marek Vasut wrote: > > > On Monday, September 12, 2011 06:49:53 AM Mike Frysinger wrote: > > > > --- a/net/eth.c > > > > +++ b/net/eth.c > > > > > > > > - 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; > > > > - } > > > > + assert(strlen(dev->name) < NAMESIZE); > > > > > > Aren't you changing the logic here ? > > > > pretty sure it's the same. old code would warn when "len >= max", while > > mine asserts that "len < max" and thus aborts when "!(len < max)" and > > based on boolean logic, "(x >= y) == !(x < y)". > > The old code return -1, doesn't abort ;-) yes, but the old code only executes when there's an error you need to fix. aborting is fine. -mike
Dear Mike Frysinger, In message <1315802993-12798-1-git-send-email-vapier@gentoo.org> you wrote: > The new sanity check introduces a printf warning for some systems: > eth.c:233: warning: format '%zu' expects type 'size_t', but argument 3 has type 'int' > > Rather than tweak the format string, use the new assert() helper instead. > > Signed-off-by: Mike Frysinger <vapier@gentoo.org> > --- > net/eth.c | 7 +------ > 1 files changed, 1 insertions(+), 6 deletions(-) Applied, thanks. Best regards, Wolfgang Denk
diff --git a/net/eth.c b/net/eth.c index 5911b1c..02baa37 100644 --- a/net/eth.c +++ b/net/eth.c @@ -227,12 +227,7 @@ 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; - } + assert(strlen(dev->name) < NAMESIZE); if (!eth_devices) { eth_current = eth_devices = dev;
The new sanity check introduces a printf warning for some systems: eth.c:233: warning: format '%zu' expects type 'size_t', but argument 3 has type 'int' Rather than tweak the format string, use the new assert() helper instead. Signed-off-by: Mike Frysinger <vapier@gentoo.org> --- net/eth.c | 7 +------ 1 files changed, 1 insertions(+), 6 deletions(-)