Date: Tue, 10 Mar 2015 14:55:06 +0000 (UTC) From: Luiz Otavio O Souza <loos@FreeBSD.org> To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org Subject: svn commit: r279852 - head/sys/dev/iicbus Message-ID: <201503101455.t2AEt633064398@svn.freebsd.org>
next in thread | raw e-mail | index | archive | help
Author: loos Date: Tue Mar 10 14:55:05 2015 New Revision: 279852 URL: https://svnweb.freebsd.org/changeset/base/279852 Log: Fix off-by-one bugs. Spotted by: rpaulo (on another review) Modified: head/sys/dev/iicbus/ds3231.c head/sys/dev/iicbus/lm75.c Modified: head/sys/dev/iicbus/ds3231.c ============================================================================== --- head/sys/dev/iicbus/ds3231.c Tue Mar 10 14:43:07 2015 (r279851) +++ head/sys/dev/iicbus/ds3231.c Tue Mar 10 14:55:05 2015 (r279852) @@ -64,8 +64,6 @@ struct ds3231_softc { uint8_t sc_status; }; -static int ds3231_sqw_freq[] = { 1, 1024, 4096, 8192 }; - static void ds3231_start(void *); static int @@ -282,6 +280,7 @@ ds3231_bbsqw_sysctl(SYSCTL_HANDLER_ARGS) static int ds3231_sqw_freq_sysctl(SYSCTL_HANDLER_ARGS) { + int ds3231_sqw_freq[] = { 1, 1024, 4096, 8192 }; int error, freq, i, newf, tmp; struct ds3231_softc *sc; @@ -290,8 +289,8 @@ ds3231_sqw_freq_sysctl(SYSCTL_HANDLER_AR if (error != 0) return (error); tmp = (sc->sc_ctrl & DS3231_CTRL_RS_MASK) >> DS3231_CTRL_RS_SHIFT; - if (tmp > nitems(ds3231_sqw_freq)) - tmp = nitems(ds3231_sqw_freq); + if (tmp >= nitems(ds3231_sqw_freq)) + tmp = nitems(ds3231_sqw_freq) - 1; freq = ds3231_sqw_freq[tmp]; error = sysctl_handle_int(oidp, &freq, 0, req); if (error != 0 || req->newptr == NULL) Modified: head/sys/dev/iicbus/lm75.c ============================================================================== --- head/sys/dev/iicbus/lm75.c Tue Mar 10 14:43:07 2015 (r279851) +++ head/sys/dev/iicbus/lm75.c Tue Mar 10 14:55:05 2015 (r279852) @@ -90,8 +90,6 @@ struct lm75_softc { uint32_t sc_conf; }; -static int lm75_faults[4] = { 1, 2, 4, 6 }; - /* Utility functions */ static int lm75_conf_read(struct lm75_softc *); static int lm75_conf_write(struct lm75_softc *); @@ -457,14 +455,15 @@ static int lm75_faults_sysctl(SYSCTL_HANDLER_ARGS) { device_t dev; + int lm75_faults[] = { 1, 2, 4, 6 }; int error, faults, i, newf, tmp; struct lm75_softc *sc; dev = (device_t)arg1; sc = device_get_softc(dev); tmp = (sc->sc_conf & LM75_CONF_FAULT) >> LM75_CONF_FSHIFT; - if (tmp > nitems(lm75_faults)) - tmp = nitems(lm75_faults); + if (tmp >= nitems(lm75_faults)) + tmp = nitems(lm75_faults) - 1; faults = lm75_faults[tmp]; error = sysctl_handle_int(oidp, &faults, 0, req);
Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?201503101455.t2AEt633064398>