summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorMartin Roth <martinroth@google.com>2015-12-21 13:14:58 -0700
committerMartin Roth <martinroth@google.com>2015-12-22 23:07:20 +0100
commitc89099641ee2a8a33d9a92e11751915472e249ff (patch)
tree2421689ee9c96a5015ac92692fdd15ed6159b821
parenta4c57407527d8fcd9a3e6e06824b21eb85104b78 (diff)
downloadcoreboot-staging-c89099641ee2a8a33d9a92e11751915472e249ff.zip
coreboot-staging-c89099641ee2a8a33d9a92e11751915472e249ff.tar.gz
soc/intel/fsp_baytrail: Make sure i2c bus is < 7HEADmaster
Baytrail has I2c Busses 0 to 6, so is supposed to error out if the I2c driver is called with 7 or greater. Due to an off-by-one error it could be called with bus 7. Fixes coverity warning: CID 1287074 (#1 of 1): Out-of-bounds read (OVERRUN) 3. overrun-local: Overrunning array base_adr of 7 4-byte elements at element index 7 (byte offset 28) using index bus (which evaluates to 7). Change-Id: I7caec60298cf27bd669796e0e05e4a896f92befd Signed-off-by: Martin Roth <martinroth@google.com> Reviewed-on: https://review.coreboot.org/12781 Tested-by: build bot (Jenkins) Reviewed-by: Werner Zeh <werner.zeh@siemens.com>
-rw-r--r--src/soc/intel/fsp_baytrail/i2c.c2
1 files changed, 1 insertions, 1 deletions
diff --git a/src/soc/intel/fsp_baytrail/i2c.c b/src/soc/intel/fsp_baytrail/i2c.c
index 6cf07a4..c6c8f65 100644
--- a/src/soc/intel/fsp_baytrail/i2c.c
+++ b/src/soc/intel/fsp_baytrail/i2c.c
@@ -102,7 +102,7 @@ int i2c_init(unsigned bus)
I2C6_MEM_BASE};
char *base_ptr;
/* Ensure the desired device is valid */
- if (bus > ARRAY_SIZE(base_adr)) {
+ if (bus >= ARRAY_SIZE(base_adr)) {
printk(BIOS_ERR, "I2C: Only I2C controllers 0...6 are available.\n");
return I2C_ERR;
}
OpenPOWER on IntegriCloud