Details

[Home]

Issue of the Implementation # L0014

Brief

drivers/net/3c507.c: Null dereference

Detailed Description

In driver drivers/net/3c507.c in function Iirqreturn_t el16_interrupt: Path:

  • 1. If in line 555 dev = NULL then we goto line 556
  • 2. In line 556 we have null dereference because pr_err called with dev->name in third parameter.
  •  555        if (dev == NULL) {
     556                pr_err("%s: net_interrupt(): irq %d for unknown device.
    
    ",
     557                        dev->name, irq);
     558                return IRQ_NONE;
     559        }
    

    Possible solutions

    diff --git a/./0000/drivers/net/3c507.c b/./moder/drivers/net/3c507.c
    index fbc2311..3bfb3dd 100644
    --- a/./0000/drivers/net/3c507.c
    +++ b/./moder/drivers/net/3c507.c
    @@ -552,12 +552,6 @@ static irqreturn_t el16_interrupt(int irq, void *dev_id)
            ushort ack_cmd = 0;
            void __iomem *shmem;
     
    -       if (dev == NULL) {
    -               pr_err("%s: net_interrupt(): irq %d for unknown device.
    ",
    -                       dev->name, irq);
    -               return IRQ_NONE;
    -       }
    -
            ioaddr = dev->base_addr;
            lp = netdev_priv(dev);
            shmem = lp->base;
    

    Component

    linux-kernel 2.6.32

    Accepted

    http://lkml.org/lkml/2009/12/21/120
    commit

    Status

    Fixed in kernel 2.6.35-rc1

    [Home]