lkml.org 
[lkml]   [2012]   [Apr]   [13]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
 
Messages in this thread
    Patch in this message
    /
    From
    Subject[PATCH 2/2] mm: fix NULL ptr dereference in move_pages
    Date
    Commit 3268c63 ("mm: fix move/migrate_pages() race on task struct") has added
    an odd construct where 'mm' is checked for being NULL, and if it is, it would
    get dereferenced anyways by mput()ing it.

    Signed-off-by: Sasha Levin <levinsasha928@gmail.com>
    ---
    mm/migrate.c | 16 ++++++++--------
    1 files changed, 8 insertions(+), 8 deletions(-)

    diff --git a/mm/migrate.c b/mm/migrate.c
    index 51c08a0..1107238 100644
    --- a/mm/migrate.c
    +++ b/mm/migrate.c
    @@ -1388,14 +1388,14 @@ SYSCALL_DEFINE6(move_pages, pid_t, pid, unsigned long, nr_pages,
    mm = get_task_mm(task);
    put_task_struct(task);

    - if (mm) {
    - if (nodes)
    - err = do_pages_move(mm, task_nodes, nr_pages, pages,
    - nodes, status, flags);
    - else
    - err = do_pages_stat(mm, nr_pages, pages, status);
    - } else
    - err = -EINVAL;
    + if (!mm)
    + return -EINVAL;
    +
    + if (nodes)
    + err = do_pages_move(mm, task_nodes, nr_pages, pages,
    + nodes, status, flags);
    + else
    + err = do_pages_stat(mm, nr_pages, pages, status);

    mmput(mm);
    return err;
    --
    1.7.8.5


    \
     
     \ /
      Last update: 2012-04-13 12:01    [W:0.020 / U:62.700 seconds]
    ©2003-2016 Jasper Spaans. hosted at Digital OceanAdvertise on this site