Commit a837f35c authored by Krzysztof Kozlowski's avatar Krzysztof Kozlowski Committed by Sebastian Reichel
Browse files

power: supply: max17040: handle device_property_read_u8_array() failure



The device_property_read_u8_array() call should not fail because it is
preceded with device_property_count_u8() and check for number of
readable u8 values.  However the code is more obvious and easier to read
if the return value of device_property_read_u8_array() is checked.
Otherwise reader needs to investigate whether really there is no risk of
using random stack values of 'rcomp' variable.

Signed-off-by: default avatarKrzysztof Kozlowski <krzysztof.kozlowski@canonical.com>
Signed-off-by: default avatarSebastian Reichel <sebastian.reichel@collabora.com>
parent 01dcfe78
Loading
Loading
Loading
Loading
+4 −5
Original line number Diff line number Diff line
@@ -268,10 +268,9 @@ static int max17040_get_of_data(struct max17040_chip *chip)
	rcomp_len = device_property_count_u8(dev, "maxim,rcomp");
	chip->rcomp = MAX17040_RCOMP_DEFAULT;
	if (rcomp_len == data->rcomp_bytes) {
		device_property_read_u8_array(dev, "maxim,rcomp",
					      rcomp, rcomp_len);
		chip->rcomp = rcomp_len == 2 ?
			rcomp[0] << 8 | rcomp[1] :
		if (!device_property_read_u8_array(dev, "maxim,rcomp",
						   rcomp, rcomp_len))
			chip->rcomp = rcomp_len == 2 ? rcomp[0] << 8 | rcomp[1] :
				      rcomp[0] << 8;
	} else if (rcomp_len > 0) {
		dev_err(dev, "maxim,rcomp has incorrect length\n");