2018-05-27 22:26:36

by Colin King

[permalink] [raw]
Subject: [PATCH][next] dm writecache: fix missing goto in error handling code

From: Colin Ian King <[email protected]>

Currently, the -EFBIG error condition when n_bitmaps_bits is
too large is falling through to the next statement and the
error assignment to r is potentially being ignored. The code
should be exiting to the error path via label 'bad'. Fix
this by adding the missing goto statement.

Detected by CoverityScan, CID#1469377 ("Unused value")

Fixes: bb15b431d650 ("dm: add writecache target")
Signed-off-by: Colin Ian King <[email protected]>
---
drivers/md/dm-writecache.c | 1 +
1 file changed, 1 insertion(+)

diff --git a/drivers/md/dm-writecache.c b/drivers/md/dm-writecache.c
index 1ef06e738eb6..e61704b6eae1 100644
--- a/drivers/md/dm-writecache.c
+++ b/drivers/md/dm-writecache.c
@@ -2077,6 +2077,7 @@ static int writecache_ctr(struct dm_target *ti, unsigned argc, char **argv)
if (n_bitmap_bits > 1U << 31) {
r = -EFBIG;
ti->error = "Invalid device size";
+ goto bad;
}

wc->memory_map = vmalloc(n_metadata_blocks << wc->block_size_bits);
--
2.17.0



2018-05-29 18:10:26

by Mike Snitzer

[permalink] [raw]
Subject: Re: [PATCH][next] dm writecache: fix missing goto in error handling code

On Sun, May 27 2018 at 6:25pm -0400,
Colin King <[email protected]> wrote:

> From: Colin Ian King <[email protected]>
>
> Currently, the -EFBIG error condition when n_bitmaps_bits is
> too large is falling through to the next statement and the
> error assignment to r is potentially being ignored. The code
> should be exiting to the error path via label 'bad'. Fix
> this by adding the missing goto statement.
>
> Detected by CoverityScan, CID#1469377 ("Unused value")
>
> Fixes: bb15b431d650 ("dm: add writecache target")
> Signed-off-by: Colin Ian King <[email protected]>

Thanks, I've picked this up.