lkml.org 
[lkml]   [2009]   [Aug]   [10]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
 
Messages in this thread
    /
    SubjectBUG memory leakage at ./security/selinux/hooks.c
    From
    Date
            KERNEL_VERSION: 2.6.30.4
    SUBJECT: in function inode_doinit_with_dentry memory is not released
    on error path (if rc<0).
    DESCRIBE:
    In ./security/selinux/hooks.c in function inode_doinit_with_dentry:
    1. If in the line 1278 we successfully allocate memory and assign it to
    context variablehen
    2. if in the line 1284 getxattr returns -ERANGE and
    3. if in the line 1288 getxattr returns rc<0
    then we go to out_unlock without releasing memory pointed to by context
    variable.

    1278 context = kmalloc(len, GFP_NOFS);
    1279 if (!context) {
    1280 rc = -ENOMEM;
    1281 dput(dentry);
    1282 goto out_unlock;
    1283 }
    1284 rc = inode->i_op->getxattr(dentry, XATTR_NAME_SELINUX,
    1285 context, len);
    1286 if (rc == -ERANGE) {
    1287 /* Need a larger buffer. Query for the
    right size. */
    1288 rc = inode->i_op->getxattr(dentry,
    XATTR_NAME_SELINUX,
    1289 NULL, 0);
    1290 if (rc < 0) {
    1291 dput(dentry);
    1292 goto out_unlock;
    1293 }
    1294 kfree(context);
    1295 len = rc;
    1296 context = kmalloc(len, GFP_NOFS);




    \
     
     \ /
      Last update: 2009-08-10 11:21    [W:0.020 / U:3.956 seconds]
    ©2003-2016 Jasper Spaans. hosted at Digital OceanAdvertise on this site