Messages in this thread Patch in this message | | | Date | Thu, 9 Jan 2014 08:41:04 +0300 | From | Dan Carpenter <> | Subject | [patch] regmap: fix a potential leak in regmap_bulk_write() |
| |
Static checkers complain that there is an error path where _regmap_raw_write() fails and we goto out without freeing the "wval" buffer.
Signed-off-by: Dan Carpenter <dan.carpenter@oracle.com>
diff --git a/drivers/base/regmap/regmap.c b/drivers/base/regmap/regmap.c index 062f59860091..939f9b26d5ee 100644 --- a/drivers/base/regmap/regmap.c +++ b/drivers/base/regmap/regmap.c @@ -1514,7 +1514,7 @@ int regmap_bulk_write(struct regmap *map, unsigned int reg, const void *val, { int ret = 0, i; size_t val_bytes = map->format.val_bytes; - void *wval; + void *wval = NULL; if (!map->bus) return -EINVAL; @@ -1555,10 +1555,10 @@ int regmap_bulk_write(struct regmap *map, unsigned int reg, const void *val, ret = _regmap_raw_write(map, reg, wval, val_bytes * val_count); } - if (val_bytes != 1) - kfree(wval); out: + if (val_bytes != 1) + kfree(wval); map->unlock(map->lock_arg); return ret; }
| |