aboutsummaryrefslogtreecommitdiff
path: root/lib/drivers
diff options
context:
space:
mode:
authorkokke <spam@rowdy.dk>2021-04-13 14:45:11 +0200
committerAndy Green <andy@warmcat.com>2021-04-15 17:41:53 +0100
commit2850de1afad7f4a9953a8494c11baec74f16cf7f (patch)
tree56800b1757cdd7854461ce5189d0b12f63efbf5b /lib/drivers
parent0a8f64ad5f9bfba614737b9d87e5eba4ef2fdd47 (diff)
downloadlibwebsockets-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.c3
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;