mirror of https://github.com/ARMmbed/mbed-os.git
Cypress: Fix unitialized memory in spi_master_write
'received' was declared as an int but populated by cyhal_spi_transfer after being cast to to (uint8_t *), which left the upper 3 bytes uninitialized. Instead, declare as uint8_t and let the compiler upcast the value when it is returned.pull/12819/head
parent
7b0c38aabb
commit
76a14f2ff4
|
@ -140,9 +140,9 @@ void spi_frequency(spi_t *obj, int hz)
|
||||||
int spi_master_write(spi_t *obj, int value)
|
int spi_master_write(spi_t *obj, int value)
|
||||||
{
|
{
|
||||||
struct spi_s *spi = cy_get_spi(obj);
|
struct spi_s *spi = cy_get_spi(obj);
|
||||||
int received;
|
uint8_t received;
|
||||||
|
|
||||||
if (CY_RSLT_SUCCESS != cyhal_spi_transfer(&(spi->hal_spi), (const uint8_t *)&value, 1, (uint8_t *)&received, 1, 0xff)) {
|
if (CY_RSLT_SUCCESS != cyhal_spi_transfer(&(spi->hal_spi), (const uint8_t *)&value, 1, &received, 1, 0xff)) {
|
||||||
MBED_ERROR(MBED_MAKE_ERROR(MBED_MODULE_DRIVER_SPI, MBED_ERROR_CODE_FAILED_OPERATION), "cyhal_spi_transfer");
|
MBED_ERROR(MBED_MAKE_ERROR(MBED_MODULE_DRIVER_SPI, MBED_ERROR_CODE_FAILED_OPERATION), "cyhal_spi_transfer");
|
||||||
}
|
}
|
||||||
return received;
|
return received;
|
||||||
|
|
Loading…
Reference in New Issue