Bug 200555 - Missing check of the return value of devm_regmap_init_i2c() in drivers/iio/magnetometer/hmc5843_i2c.c
Summary: Missing check of the return value of devm_regmap_init_i2c() in drivers/iio/ma...
Status: RESOLVED PATCH_ALREADY_AVAILABLE
Alias: None
Product: Drivers
Classification: Unclassified
Component: IIO (show other bugs)
Hardware: All Linux
: P1 normal
Assignee: Virtual Assignee for Drivers/IIO
URL:
Keywords:
Depends on:
Blocks:
 
Reported: 2018-07-18 10:17 UTC by Jason Wood
Modified: 2021-02-15 11:19 UTC (History)
1 user (show)

See Also:
Kernel Version: v4.18-rc4
Subsystem:
Regression: No
Bisected commit-id:


Attachments

Description Jason Wood 2018-07-18 10:17:52 UTC
Function hmc5843_i2c_probe() defined in drivers/iio/magnetometer/hmc5843_i2c.c calls devm_regmap_init_i2c() which need a return value check. The returned value is dereferenced in 3 function call deeper. However, return value check is missed. Codes related to this bug are shown as follows.

drivers/iio/magnetometer/hmc5843_i2c.c:
   60  {
   61  	return hmc5843_common_probe(&cli->dev,
   62: 			devm_regmap_init_i2c(cli, &hmc5843_i2c_regmap_config),
   63  			id->driver_data, id->name);
   64  }

---
drivers/iio/magnetometer/hmc5843_core.c:
  618: int hmc5843_common_probe(struct device *dev, struct regmap *regmap,
  619  			 enum hmc5843_ids id, const char *name)
  620  {
...
  634		data->regmap = regmap;
...
  646		ret = hmc5843_init(data);

---
drivers/iio/magnetometer/hmc5843_core.c:
  569: static int hmc5843_init(struct hmc5843_data *data)
  570  {
  571  	int ret;
  572	u8 id[3];
  573
  574	ret = regmap_bulk_read(data->regmap, HMC5843_ID_REG,
  575			       id, ARRAY_SIZE(id));

---
drivers/base/regmap/regmap.c:
 2635: int regmap_bulk_read(struct regmap *map, unsigned int reg, void *val,
 2636  		     size_t val_count)
 2637  {
 2638		int ret, i;
 2639		size_t val_bytes = map->format.val_bytes;

Thanks for attention!
JW, ZG
IMChecker Group, THU
Comment 1 Jason Wood 2018-09-13 10:43:32 UTC
We have sent the patch to the developers. Currently, we're formatting the patch according to the Linux development documentation.

Note You need to log in before you can comment on or make changes to this bug.