Thread (1 message) 1 message, 1 author, 2011-03-15

Re: [PATCH] Fix overflow of name in struct net_device, replaced str* and sprintf with strn* and snprintf respectivly.

From: Ben Hutchings <hidden>
Date: 2011-03-15 15:33:00

On Tue, 2011-03-15 at 20:30 +0530, Sasikanth V wrote:
On Tue, Mar 15, 2011 at 1:59 AM, Ben Hutchings
[off-list ref] wrote:
        On Tue, 2011-03-15 at 01:37 +0530, Sasikanth V wrote:
        > Signed-off-by: Sasikanth V [off-list ref]
        > ---
        >  net/core/dev.c |   14 +++++++-------
        >  1 files changed, 7 insertions(+), 7 deletions(-)
        >
        > diff --git a/net/core/dev.c b/net/core/dev.c
        > index 6561021..9d06c1e 100644
        > --- a/net/core/dev.c
        > +++ b/net/core/dev.c
        > @@ -510,7 +510,7 @@ int netdev_boot_setup_check(struct
        net_device *dev)
        >
        >       for (i = 0; i < NETDEV_BOOT_SETUP_MAX; i++) {
        >               if (s[i].name[0] != '\0' && s[i].name[0] != '
        ' &&
        > -                 !strcmp(dev->name, s[i].name)) {
        > +                 !strncmp(dev->name, s[i].name, IFNAMSIZ))
        {
        
        
        If s[i].name is too long, so what?  No change is required
        here.
        
        >                       dev->irq        = s[i].map.irq;
        >                       dev->base_addr  = s[i].map.base_addr;
        >                       dev->mem_start  = s[i].map.mem_start;
        > @@ -539,7 +539,7 @@ unsigned long netdev_boot_base(const
        char *prefix, int unit)
        >       char name[IFNAMSIZ];
        >       int i;
        >
        > -     sprintf(name, "%s%d", prefix, unit);
        > +     snprintf(name, IFNAMSIZ, "%s%d", prefix, unit);
        
        
        This looks reasonable.
        
        >       /*
        >        * If device already registered then return base of 1
        > @@ -549,7 +549,7 @@ unsigned long netdev_boot_base(const
        char *prefix, int unit)
        >               return 1;
        >
        >       for (i = 0; i < NETDEV_BOOT_SETUP_MAX; i++)
        > -             if (!strcmp(name, s[i].name))
        > +             if (!strncmp(name, s[i].name, IFNAMSIZ))
        
        
        Not required.

       So,  Do we have to remove already existing strncmp (to compare
the device name)  in dev.c?
[...]

I don't know what you mean.

Ben.

-- 
Ben Hutchings, Senior Software Engineer, Solarflare
Not speaking for my employer; that's the marketing department's job.
They asked us to note that Solarflare product names are trademarked.
Keyboard shortcuts
hback out one level
jnext message in thread
kprevious message in thread
ldrill in
Escclose help / fold thread tree
?toggle this help