diff options
author | Patrick Georgi <pgeorgi@google.com> | 2020-05-02 16:07:11 +0200 |
---|---|---|
committer | Patrick Georgi <pgeorgi@google.com> | 2020-05-05 13:06:17 +0000 |
commit | 8bbb764818f8ebf71bd14bd6ff90ad233646cc3b (patch) | |
tree | 907e51e094d3428ddacb0af2a0de5541777dda6b | |
parent | 757e89243efd7e783923d486c542a692072e0111 (diff) | |
download | flashrom-8bbb764818f8ebf71bd14bd6ff90ad233646cc3b.tar.gz flashrom-8bbb764818f8ebf71bd14bd6ff90ad233646cc3b.tar.bz2 flashrom-8bbb764818f8ebf71bd14bd6ff90ad233646cc3b.zip |
spi95: Check for success before using send_command's returned data
If the transfer failed, the data might be invalid.
Change-Id: I3ad9daa00a54e2a3954983cec91b6685f1a98880
Found-By: Coverity Scan #1405870
Signed-off-by: Patrick Georgi <pgeorgi@google.com>
Reviewed-on: https://review.coreboot.org/c/flashrom/+/40970
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
Reviewed-by: Angel Pons <th3fanbus@gmail.com>
-rw-r--r-- | spi95.c | 5 |
1 files changed, 4 insertions, 1 deletions
@@ -33,12 +33,15 @@ int probe_spi_st95(struct flashctx *flash) static const unsigned char cmd[ST_M95_RDID_OUTSIZE_MAX] = { ST_M95_RDID }; unsigned char readarr[ST_M95_RDID_INSIZE]; uint32_t id1, id2; + int ret; uint32_t rdid_outsize = ST_M95_RDID_2BA_OUTSIZE; // 16 bit address if (flash->chip->total_size * KiB > 64 * KiB) rdid_outsize = ST_M95_RDID_3BA_OUTSIZE; // 24 bit address - spi_send_command(flash, rdid_outsize, sizeof(readarr), cmd, readarr); + ret = spi_send_command(flash, rdid_outsize, sizeof(readarr), cmd, readarr); + if (ret) + return ret; id1 = readarr[0]; // manufacture id id2 = (readarr[1] << 8) | readarr[2]; // SPI family code + model id |