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-Tag: v3.16.35~627 X-Git-Url: http://git.ipfire.org/gitweb.cgi?a=commitdiff_plain;h=459ab78e8e3e66125b531912083ca50744ce9a9b;p=thirdparty%2Fkernel%2Fstable.git bcache: fix a leak in bch_cached_dev_run() commit 4d4d8573a8451acc9f01cbea24b7e55f04a252fe upstream. Signed-off-by: Al Viro Tested-by: Joshua Schmid Tested-by: Eric Wheeler Cc: Kent Overstreet Signed-off-by: Jens Axboe Signed-off-by: Luis Henriques --- diff --git a/drivers/md/bcache/super.c b/drivers/md/bcache/super.c index c2293ae5108f7..4a53568799147 100644 --- a/drivers/md/bcache/super.c +++ b/drivers/md/bcache/super.c @@ -881,8 +881,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) {