From fa8ab6194d3b9b3d46b36dd381c314ce7a1e97a4 Mon Sep 17 00:00:00 2001 From: Noel Eck Date: Wed, 29 Mar 2017 16:31:01 -0700 Subject: [PATCH] memleak: Handle freeing return from spi call mraa_spi_write_buf returns an allocated buffer. Added call to free the allocated memory. Signed-off-by: Noel Eck --- src/apa102/apa102.c | 8 ++++++-- src/apa102/apa102.cxx | 3 ++- 2 files changed, 8 insertions(+), 3 deletions(-) diff --git a/src/apa102/apa102.c b/src/apa102/apa102.c index 6579eed6..4366dbd7 100644 --- a/src/apa102/apa102.c +++ b/src/apa102/apa102.c @@ -125,10 +125,14 @@ upm_result_t apa102_set_leds_brightness(apa102_context dev, uint16_t s_index, ui upm_result_t apa102_refresh(apa102_context dev) { assert(dev != NULL); if(!dev->cs) { - mraa_spi_write_buf(dev->spi, dev->buffer, dev->framelength); + uint8_t* recv = + mraa_spi_write_buf(dev->spi, dev->buffer, dev->framelength); + if (recv != NULL) free(recv); } else { mraa_gpio_write(dev->cs, 1); - mraa_spi_write_buf(dev->spi, dev->buffer, dev->framelength); + uint8_t* recv = + mraa_spi_write_buf(dev->spi, dev->buffer, dev->framelength); + if (recv != NULL) free(recv); mraa_gpio_write(dev->cs, 0); } return UPM_SUCCESS; diff --git a/src/apa102/apa102.cxx b/src/apa102/apa102.cxx index 264c7418..46b7323e 100644 --- a/src/apa102/apa102.cxx +++ b/src/apa102/apa102.cxx @@ -165,7 +165,8 @@ void APA102::pushState(void) { CSOn(); - m_spi->write(m_leds, m_frameLength); + uint8_t* recv = m_spi->write(m_leds, m_frameLength); + if (recv != NULL) free(recv); CSOff(); }