lkml.org 
[lkml]   [2019]   [Feb]   [16]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
 
Messages in this thread
    Patch in this message
    /
    From
    Subject[PATCH] dm crypt: fix memory leak in dm_crypt_integrity_io_alloc() error path
    Date
    From: Sultan Alsawaf <sultan@kerneltoast.com>

    dm_crypt_integrity_io_alloc() allocates space for an integrity payload but
    doesn't free it in the error path, leaking memory. Add a bio_integrity_free()
    invocation upon error to fix the memory leak.

    Signed-off-by: Sultan Alsawaf <sultan@kerneltoast.com>
    ---
    drivers/md/dm-crypt.c | 4 +++-
    1 file changed, 3 insertions(+), 1 deletion(-)

    diff --git a/drivers/md/dm-crypt.c b/drivers/md/dm-crypt.c
    index dd538e6b2..f731e1fe0 100644
    --- a/drivers/md/dm-crypt.c
    +++ b/drivers/md/dm-crypt.c
    @@ -939,8 +939,10 @@ static int dm_crypt_integrity_io_alloc(struct dm_crypt_io *io, struct bio *bio)

    ret = bio_integrity_add_page(bio, virt_to_page(io->integrity_metadata),
    tag_len, offset_in_page(io->integrity_metadata));
    - if (unlikely(ret != tag_len))
    + if (unlikely(ret != tag_len)) {
    + bio_integrity_free(bio);
    return -ENOMEM;
    + }

    return 0;
    }
    --
    2.20.1
    \
     
     \ /
      Last update: 2019-02-16 22:03    [W:2.282 / U:1.300 seconds]
    ©2003-2020 Jasper Spaans|hosted at Digital Ocean and TransIP|Read the blog|Advertise on this site