From c6b424f4ff178cf873c3b48f1eac06e57dd1e70f Mon Sep 17 00:00:00 2001 From: kYc0o Date: Tue, 2 Apr 2019 16:00:03 +0200 Subject: [PATCH] drivers/cc2420: don't append to FIFO if iol->iol_len == 0 This prevents SPI transfers with len == 0, which triggers an assert failure. --- drivers/cc2420/cc2420.c | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/drivers/cc2420/cc2420.c b/drivers/cc2420/cc2420.c index b6982e096f..b8e8c2a0b2 100644 --- a/drivers/cc2420/cc2420.c +++ b/drivers/cc2420/cc2420.c @@ -131,9 +131,11 @@ size_t cc2420_tx_prepare(cc2420_t *dev, const iolist_t *iolist) cc2420_strobe(dev, CC2420_STROBE_FLUSHTX); /* push packet length to TX FIFO */ cc2420_fifo_write(dev, (uint8_t *)&pkt_len, 1); - /* push packet to TX FIFO */ + /* push packet to TX FIFO, only if iol->iol_len > 0 */ for (const iolist_t *iol = iolist; iol; iol = iol->iol_next) { - cc2420_fifo_write(dev, iol->iol_base, iol->iol_len); + if (iol->iol_len > 0) { + cc2420_fifo_write(dev, iol->iol_base, iol->iol_len); + } } DEBUG("cc2420: tx_prep: loaded %i byte into the TX FIFO\n", (int)pkt_len);