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 <noel.eck@intel.com>
This commit is contained in:
Noel Eck 2017-03-29 16:31:01 -07:00
parent 8048e8734f
commit fa8ab6194d
2 changed files with 8 additions and 3 deletions

View File

@ -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) { upm_result_t apa102_refresh(apa102_context dev) {
assert(dev != NULL); assert(dev != NULL);
if(!dev->cs) { 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 { } else {
mraa_gpio_write(dev->cs, 1); 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); mraa_gpio_write(dev->cs, 0);
} }
return UPM_SUCCESS; return UPM_SUCCESS;

View File

@ -165,7 +165,8 @@ void
APA102::pushState(void) APA102::pushState(void)
{ {
CSOn(); CSOn();
m_spi->write(m_leds, m_frameLength); uint8_t* recv = m_spi->write(m_leds, m_frameLength);
if (recv != NULL) free(recv);
CSOff(); CSOff();
} }