lkml.org 
[lkml]   [2006]   [Oct]   [17]   [last100]   RSS Feed
Views: [more markup]  [less markup]  [headers]  [forward] 
 
Messages in this thread
    /
    DateTue, 17 Oct 2006 10:10:20 +0200
    FromJarek Poplawski <>
    SubjectRe: potential mem leak when system is low on memory
    On 17-10-2006 00:52, Amit Choudhary wrote:
    > Hi All,
    > 
    > I was just scrubbing the kernel for checking the return ststus of
    > kmalloc(), and I saw at many places the following things. I just
    > wanted to report this.
    > 
    > 1. If there are more than one kmalloc() calls in the same function,
    > and if kmalloc() returns NULL for one of them, then the memory
    > obtained from previous kmalloc() calls is not released.
    > 
    > Something like:
    > 
    > func()
    > {
    >    var1 = kmalloc(size);
    >    if (!var1)
    >         return -ENOMEM;
    > 
    >    var2 = kmalloc(size);
    >    if (!var2)
    >         return -ENOMEM;
    > 
    > /* mem  leak as var1 is not freed */
    > 
    > }
    > 
    > 2. Sometimes, memory is allocated in a loop. So, if kmalloc() fails at
    > some point, memory allocated previously is not released.
    > 
    > func()
    > {
    >    for (i = 0; i < LENGTH; i++) {
    >            var1[i] = kmalloc(size);
    >            if (!var1[i])
    >                 return -ENOMEM;
    > 
    > /* mem leak as var1[0] to var1[i - 1] is not freed */
    > 
    >    }
    > }
    > 
    > So, already the system is running low on memory and on top of it there
    > are leaks.
    
    So you've found elementary programming bugs and it would
    be nice to point this places.
    
    Jarek P.
    -
    To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
    the body of a message to majordomo@vger.kernel.org
    More majordomo info at  http://vger.kernel.org/majordomo-info.html
    Please read the FAQ at  http://www.tux.org/lkml/
    
    
    \
     
     \ /
      Last update: 2006-10-17 10:09    [from the cache]
    ©2003-2008