From: Al Viro Date: Mon, 30 Nov 2015 01:20:59 +0000 (-0800) Subject: bcache: fix a leak in bch_cached_dev_run() X-Git-Url: http://drtracing.org/?a=commitdiff_plain;h=4d4d8573a8451acc9f01cbea24b7e55f04a252fe;p=deliverable%2Flinux.git bcache: fix a leak in bch_cached_dev_run() Signed-off-by: Al Viro Tested-by: Joshua Schmid Tested-by: Eric Wheeler Cc: Kent Overstreet Cc: stable@vger.kernel.org Signed-off-by: Jens Axboe --- diff --git a/drivers/md/bcache/super.c b/drivers/md/bcache/super.c index 383f06028a0a..43e911e4e8d0 100644 --- a/drivers/md/bcache/super.c +++ b/drivers/md/bcache/super.c @@ -849,8 +849,11 @@ void bch_cached_dev_run(struct cached_dev *dc) buf[SB_LABEL_SIZE] = '\0'; env[2] = kasprintf(GFP_KERNEL, "CACHED_LABEL=%s", buf); - if (atomic_xchg(&dc->running, 1)) + if (atomic_xchg(&dc->running, 1)) { + kfree(env[1]); + kfree(env[2]); return; + } if (!d->c && BDEV_STATE(&dc->sb) != BDEV_STATE_NONE) {