Thread (5 messages) 5 messages, 4 authors, 2008-11-27

Re: [Bugme-new] [Bug 12087] New: [drivers/net/cxgb3/sge.c:563]: Possible memory leak: s

From: Divy Le Ray <hidden>
Date: 2008-11-27 08:27:31

Andrew Morton wrote:
(switched to email.  Please respond via emailed reply-to-all, not via the
bugzilla web interface).

On Sat, 22 Nov 2008 21:11:51 -0800 (PST) bugme-daemon@bugzilla.kernel.org wrote:
quoted
http://bugzilla.kernel.org/show_bug.cgi?id=12087

           Summary: [drivers/net/cxgb3/sge.c:563]: Possible memory leak: s
           Product: Drivers
           Version: 2.5
     KernelVersion: latest git tree
          Platform: All
        OS/Version: Linux
              Tree: Mainline
            Status: NEW
          Severity: normal
          Priority: P1
         Component: Network
        AssignedTo: jgarzik@pobox.com
        ReportedBy: danielm77@spray.se


There will be a memory leak in the function alloc_ring when the parameter
sw_size is nonzero and metadata is NULL. I don't know if that can happen.

Here is the code, taken from the latest git tree.

static void *alloc_ring(struct pci_dev *pdev, size_t nelem, size_t elem_size,
                        size_t sw_size, dma_addr_t * phys, void *metadata)
{
        size_t len = nelem * elem_size;
        void *s = NULL;
        void *p = dma_alloc_coherent(&pdev->dev, len, phys, GFP_KERNEL);

        if (!p)
                return NULL;
        if (sw_size) {
                s = kcalloc(nelem, sw_size, GFP_KERNEL);

                if (!s) {
                        dma_free_coherent(&pdev->dev, len, p, *phys);
                        return NULL;
                }
        }
        if (metadata)
                *(void **)metadata = s;
        memset(p, 0, len);
        return p;
}
yeah, that is a bit silly-looking.
The following patch should hopefully take care of this issue:
http://git.kernel.org/?p=linux/kernel/git/davem/net-next-2.6.git;a=commitdiff;h=5256554489531f3e177e7308752d8f0681cdd5a6

Cheers,
Divy
Keyboard shortcuts
hback out one level
jnext message in thread
kprevious message in thread
ldrill in
Escclose help / fold thread tree
?toggle this help