bcache: fix use-after-free in register_bcache()
authorColy Li <colyli@suse.de>
Thu, 23 Jan 2020 17:01:30 +0000 (01:01 +0800)
committerJens Axboe <axboe@kernel.dk>
Thu, 23 Jan 2020 18:40:01 +0000 (11:40 -0700)
commitae3cd299919af6eb670d5af0bc9d7ba14086bd8e
treec7d1875cd935ab39b4ad62a2c819838bf013f8b6
parent29cda393bcaad160c4bf3676ddd99855adafc72f
bcache: fix use-after-free in register_bcache()

The patch "bcache: rework error unwinding in register_bcache" introduces
a use-after-free regression in register_bcache(). Here are current code,
2510 out_free_path:
2511         kfree(path);
2512 out_module_put:
2513         module_put(THIS_MODULE);
2514 out:
2515         pr_info("error %s: %s", path, err);
2516         return ret;
If some error happens and the above code path is executed, at line 2511
path is released, but referenced at line 2515. Then KASAN reports a use-
after-free error message.

This patch changes line 2515 in the following way to fix the problem,
2515         pr_info("error %s: %s", path?path:"", err);

Signed-off-by: Coly Li <colyli@suse.de>
Cc: Christoph Hellwig <hch@lst.de>
Signed-off-by: Jens Axboe <axboe@kernel.dk>
drivers/md/bcache/super.c