summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorjhibbits <jhibbits@FreeBSD.org>2014-10-12 23:48:55 +0000
committerjhibbits <jhibbits@FreeBSD.org>2014-10-12 23:48:55 +0000
commitf64b57408f7bde95a933729a7c464975dac9a63c (patch)
tree575941092774621ea8ad393ce7835f1ddc4c66d7
parent1cc1341f99e4db303ca09d810d015e413a249d2b (diff)
downloadFreeBSD-src-f64b57408f7bde95a933729a7c464975dac9a63c.zip
FreeBSD-src-f64b57408f7bde95a933729a7c464975dac9a63c.tar.gz
Check error return from reading integer part of temperature.
There's a very remote, but possible, chance that the integer part read will fail, but the fraction read succeeds, at which point the reported temperature is invalid. Reported by: Matthew Rezny MFC after: 3 weeks
-rw-r--r--sys/dev/iicbus/max6690.c4
1 files changed, 4 insertions, 0 deletions
diff --git a/sys/dev/iicbus/max6690.c b/sys/dev/iicbus/max6690.c
index 5742e17..67bb042 100644
--- a/sys/dev/iicbus/max6690.c
+++ b/sys/dev/iicbus/max6690.c
@@ -340,6 +340,10 @@ max6690_sensor_read(struct max6690_sensor *sens)
}
err = max6690_read(sc->sc_dev, sc->sc_addr, reg_int, &integer);
+
+ if (err < 0)
+ return (-1);
+
err = max6690_read(sc->sc_dev, sc->sc_addr, reg_ext, &fraction);
if (err < 0)
OpenPOWER on IntegriCloud