summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorMary Ruthven <mruthven@chromium.org>2021-04-16 04:48:28 +1000
committerCommit Bot <commit-bot@chromium.org>2021-05-09 01:44:06 +0000
commitcf011eb2ee6931ba19b4522279313611f7184c39 (patch)
tree64400344226ee0b16daaf7cd83896ff6c24bdb1a
parentc03ba7e63aac30fbe448108d25b7a31086e1a696 (diff)
downloadchrome-ec-cf011eb2ee6931ba19b4522279313611f7184c39.tar.gz
i2cp: fix read chunk processing
BUG=b:184965542 TEST=see BUG Change-Id: I340af997123ad0b5329a81311663ed90ffaab4b3 Signed-off-by: Mary Ruthven <mruthven@chromium.org> Reviewed-on: https://chromium-review.googlesource.com/c/chromiumos/platform/ec/+/2836190 Reviewed-by: Andrey Pronin <apronin@chromium.org> (cherry picked from commit d4cb504dc0e329d2f9714a47f295c7ed8b76b527) Reviewed-on: https://chromium-review.googlesource.com/c/chromiumos/platform/ec/+/2837406 (cherry picked from commit acdca9c81756cece9502505d64c856750d467e19) Reviewed-on: https://chromium-review.googlesource.com/c/chromiumos/platform/ec/+/2851344 (cherry picked from commit 5ae080dabe58606f9bd7bc36502a33feceeb7edd) Reviewed-on: https://chromium-review.googlesource.com/c/chromiumos/platform/ec/+/2880141 Reviewed-by: Vadim Bendebury <vbendeb@chromium.org>
-rw-r--r--chip/g/i2cs.c4
1 files changed, 3 insertions, 1 deletions
diff --git a/chip/g/i2cs.c b/chip/g/i2cs.c
index 2a24c28134..e57f87a60e 100644
--- a/chip/g/i2cs.c
+++ b/chip/g/i2cs.c
@@ -378,7 +378,9 @@ void i2cs_post_read_fill_fifo(uint8_t *buffer, size_t len)
REGISTER_FILE_MASK;
/* Insert bytes until fifo is word aligned */
- if (remainder_bytes) {
+ if (remainder_bytes && len) {
+ if (len < remainder_bytes)
+ remainder_bytes = len;
/* mask the bytes to be kept */
word_out_value = value_addr[addr_offset];
word_out_value &= BIT((8 * start_offset)) - 1;