diff options
author | kokke <spam@rowdy.dk> | 2021-04-13 14:45:11 +0200 |
---|---|---|
committer | Andy Green <andy@warmcat.com> | 2021-04-15 17:41:53 +0100 |
commit | 2850de1afad7f4a9953a8494c11baec74f16cf7f (patch) | |
tree | 56800b1757cdd7854461ce5189d0b12f63efbf5b /lib/drivers | |
parent | 0a8f64ad5f9bfba614737b9d87e5eba4ef2fdd47 (diff) | |
download | libwebsockets-2850de1afad7f4a9953a8494c11baec74f16cf7f.tar.gz |
drivers: spi: avoid leaking uninitialized bits
Before this commit, line 84 read 'u' before it had a value, on 1st for-loop iteration. See comment on line 84 below:
82 for (n = 0; n < 8; n++) {
83 ctx->gpio->set(ctx->clk, inv);
84 u = (u << 1) | !!ctx->gpio->read(ctx->miso); /* <-- u is used uninitialized here */
85 ctx->gpio->set(ctx->mosi, !!(u & 0x80));
86 ctx->gpio->set(ctx->clk, !inv);
87 }
Diffstat (limited to 'lib/drivers')
-rw-r--r-- | lib/drivers/spi/bitbang/lws-bb-spi.c | 3 |
1 files changed, 2 insertions, 1 deletions
diff --git a/lib/drivers/spi/bitbang/lws-bb-spi.c b/lib/drivers/spi/bitbang/lws-bb-spi.c index 285e53ac..10f9bc59 100644 --- a/lib/drivers/spi/bitbang/lws-bb-spi.c +++ b/lib/drivers/spi/bitbang/lws-bb-spi.c @@ -74,7 +74,8 @@ lws_bb_spi_write(lws_bb_spi_t *ctx, const uint8_t *buf, size_t len) static void lws_bb_spi_read(lws_bb_spi_t *ctx, uint8_t *buf, size_t len) { - uint8_t u, inv = !!(ctx->bb_ops.bus_mode & LWSSPIMODE_CPOL); + uint8_t u = 0; + uint8_t inv = !!(ctx->bb_ops.bus_mode & LWSSPIMODE_CPOL); while (len--) { int n; |