Skip to contentSkip to conversation

Memory leak in 2.4 vmalloc.c get_vm_area

DISCUSSION Nathan Scott 2 participants 2 messages Nov 18, 2002 – Nov 19, 2002

lore
Share & tools
lore
#0 lore raw

hi Alan,

I noticed you recently merged this patch with Marcelo in the 2.4 BK tree (lists you as author, and annotation says it came from DaveM originally)...

        --- 1.10/mm/vmalloc.c   Tue Feb  5 06:10:20 2002
        +++ 1.11/mm/vmalloc.c   Thu Sep  5 05:22:42 2002
        @@ -177,6 +177,8 @@
                if (!area)
                        return NULL;
                size += PAGE_SIZE;
        +       if(!size)
        +               return NULL;
                addr = VMALLOC_START;
                write_lock(&vmlist_lock);
                for (p = &vmlist; (tmp = *p) ; p = &tmp->next) {

This looks to me like it introduces a memory leak in the new !size case - either the "size" bump and test needs to be moved before the "area" kmalloc, or we need to kfree(area) before returning NULL.

If you like, I'll make a (trivial) patch to do one of these?

cheers.

Signature · 1 line
Nathan
#1 lore raw
Quoted 19 lines · Nathan Scott

hi Alan,

I noticed you recently merged this patch with Marcelo in the 2.4 BK tree (lists you as author, and annotation says it came from DaveM originally)...

        --- 1.10/mm/vmalloc.c   Tue Feb  5 06:10:20 2002
        +++ 1.11/mm/vmalloc.c   Thu Sep  5 05:22:42 2002
        @@ -177,6 +177,8 @@
                if (!area)
                        return NULL;
                size += PAGE_SIZE;
        +       if(!size)
        +               return NULL;
                addr = VMALLOC_START;
                write_lock(&vmlist_lock);
                for (p = &vmlist; (tmp = *p) ; p = &tmp->next) {
Quoted 5 lines

This looks to me like it introduces a memory leak in the new !size case - either the "size" bump and test needs to be moved before the "area" kmalloc, or we need to kfree(area) before returning NULL.

If you like, I'll make a (trivial) patch to do one of these?

Correct diagnosis. Patch went to Marcelo a while back. (Which I thought he took). Alan already picked it up iirc.

Will retransmit, as this is -rc material IMO.

Dave

Signature · 2 lines
| Dave Jones.        http://www.codemonkey.org.uk
| SuSE Labs