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.12.56~88 X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=172690beba9309e5a9369f4b383cef6884cbc07c;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: Jiri Slaby --- diff --git a/drivers/md/bcache/super.c b/drivers/md/bcache/super.c index f5004c5c4b962..391e04160c3fb 100644 --- a/drivers/md/bcache/super.c +++ b/drivers/md/bcache/super.c @@ -841,8 +841,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) {