Author: jhibbits
Date: Sun Oct 12 23:48:55 2014
New Revision: 273016
URL: https://svnweb.freebsd.org/changeset/base/273016

Log:
  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

Modified:
  head/sys/dev/iicbus/max6690.c

Modified: head/sys/dev/iicbus/max6690.c
==============================================================================
--- head/sys/dev/iicbus/max6690.c       Sun Oct 12 23:46:24 2014        
(r273015)
+++ head/sys/dev/iicbus/max6690.c       Sun Oct 12 23:48:55 2014        
(r273016)
@@ -340,6 +340,10 @@ max6690_sensor_read(struct max6690_senso
        }
 
        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)
_______________________________________________
svn-src-all@freebsd.org mailing list
http://lists.freebsd.org/mailman/listinfo/svn-src-all
To unsubscribe, send any mail to "svn-src-all-unsubscr...@freebsd.org"

Reply via email to