lkml.org 
[lkml]   [2019]   [Apr]   [15]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
 
Messages in this thread
    Patch in this message
    /
    From
    Subject[PATCH 4.9 68/76] block: do not leak memory in bio_copy_user_iov()
    Date
    From: Jérôme Glisse <jglisse@redhat.com>

    commit a3761c3c91209b58b6f33bf69dd8bb8ec0c9d925 upstream.

    When bio_add_pc_page() fails in bio_copy_user_iov() we should free
    the page we just allocated otherwise we are leaking it.

    Cc: linux-block@vger.kernel.org
    Cc: Linus Torvalds <torvalds@linux-foundation.org>
    Cc: stable@vger.kernel.org
    Reviewed-by: Chaitanya Kulkarni <chaitanya.kulkarni@wdc.com>
    Signed-off-by: Jérôme Glisse <jglisse@redhat.com>
    Signed-off-by: Jens Axboe <axboe@kernel.dk>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

    ---
    block/bio.c | 5 ++++-
    1 file changed, 4 insertions(+), 1 deletion(-)

    --- a/block/bio.c
    +++ b/block/bio.c
    @@ -1214,8 +1214,11 @@ struct bio *bio_copy_user_iov(struct req
    }
    }

    - if (bio_add_pc_page(q, bio, page, bytes, offset) < bytes)
    + if (bio_add_pc_page(q, bio, page, bytes, offset) < bytes) {
    + if (!map_data)
    + __free_page(page);
    break;
    + }

    len -= bytes;
    offset = 0;

    \
     
     \ /
      Last update: 2019-04-15 20:49    [W:4.124 / U:0.816 seconds]
    ©2003-2020 Jasper Spaans|hosted at Digital Ocean and TransIP|Read the blog|Advertise on this site