lkml.org 
[lkml]   [2011]   [Jun]   [16]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
 
Messages in this thread
    Patch in this message
    /
    Date
    From
    Subject[37/85] UBIFS: fix a rare memory leak in ro to rw remounting path
    2.6.33-longterm review patch.  If anyone has any objections, please let us know.

    ------------------

    From: Artem Bityutskiy <Artem.Bityutskiy@nokia.com>

    commit eaeee242c531cd4b0a4a46e8b5dd7ef504380c42 upstream.

    When re-mounting from R/O mode to R/W mode and the LEB count in the superblock
    is not up-to date, because for the underlying UBI volume became larger, we
    re-write the superblock. We allocate RAM for these purposes, but never free it.
    So this is a memory leak, although very rare one.

    Signed-off-by: Artem Bityutskiy <Artem.Bityutskiy@nokia.com>
    Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>

    ---
    fs/ubifs/sb.c | 3 ++-
    fs/ubifs/super.c | 1 +
    2 files changed, 3 insertions(+), 1 deletion(-)

    --- a/fs/ubifs/sb.c
    +++ b/fs/ubifs/sb.c
    @@ -474,7 +474,8 @@ failed:
    * @c: UBIFS file-system description object
    *
    * This function returns a pointer to the superblock node or a negative error
    - * code.
    + * code. Note, the user of this function is responsible of kfree()'ing the
    + * returned superblock buffer.
    */
    struct ubifs_sb_node *ubifs_read_sb_node(struct ubifs_info *c)
    {
    --- a/fs/ubifs/super.c
    +++ b/fs/ubifs/super.c
    @@ -1545,6 +1545,7 @@ static int ubifs_remount_rw(struct ubifs
    }
    sup->leb_cnt = cpu_to_le32(c->leb_cnt);
    err = ubifs_write_sb_node(c, sup);
    + kfree(sup);
    if (err)
    goto out;
    }



    \
     
     \ /
      Last update: 2011-06-16 09:21    [W:0.026 / U:1.520 seconds]
    ©2003-2016 Jasper Spaans. hosted at Digital OceanAdvertise on this site