lkml.org 
[lkml]   [2016]   [Apr]   [10]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
 
Messages in this thread
    Patch in this message
    /
    From
    Subject[PATCH 4.5 137/238] bcache: fix cache_set_flush() NULL pointer dereference on OOM
    Date
    4.5-stable review patch.  If anyone has any objections, please let me know.

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

    From: Eric Wheeler <git@linux.ewheeler.net>

    commit f8b11260a445169989d01df75d35af0f56178f95 upstream.

    When bch_cache_set_alloc() fails to kzalloc the cache_set, the
    asyncronous closure handling tries to dereference a cache_set that
    hadn't yet been allocated inside of cache_set_flush() which is called
    by __cache_set_unregister() during cleanup. This appears to happen only
    during an OOM condition on bcache_register.

    Signed-off-by: Eric Wheeler <bcache@linux.ewheeler.net>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

    ---
    drivers/md/bcache/super.c | 3 +++
    1 file changed, 3 insertions(+)

    --- a/drivers/md/bcache/super.c
    +++ b/drivers/md/bcache/super.c
    @@ -1373,6 +1373,9 @@ static void cache_set_flush(struct closu
    struct btree *b;
    unsigned i;

    + if (!c)
    + closure_return(cl);
    +
    bch_cache_accounting_destroy(&c->accounting);

    kobject_put(&c->internal);

    \
     
     \ /
      Last update: 2016-04-10 22:41    [W:4.024 / U:0.604 seconds]
    ©2003-2020 Jasper Spaans|hosted at Digital Ocean and TransIP|Read the blog|Advertise on this site