[HAL][SPI] Check data size before changing state in reception API
edit fe4bb77 [HAL][SPI] Check data size before changing state in reception API
diff --git a/Src/stm32f4xx_hal_spi.c b/Src/stm32f4xx_hal_spi.c
index 99b5549..f759e49 100644
--- a/Src/stm32f4xx_hal_spi.c
+++ b/Src/stm32f4xx_hal_spi.c
@@ -944,6 +944,11 @@
return HAL_BUSY;
}
+ if ((pData == NULL) || (Size == 0U))
+ {
+ return HAL_ERROR;
+ }
+
if ((hspi->Init.Mode == SPI_MODE_MASTER) && (hspi->Init.Direction == SPI_DIRECTION_2LINES))
{
hspi->State = HAL_SPI_STATE_BUSY_RX;
@@ -954,11 +959,6 @@
/* Init tickstart for timeout management*/
tickstart = HAL_GetTick();
- if ((pData == NULL) || (Size == 0U))
- {
- return HAL_ERROR;
- }
-
/* Process Locked */
__HAL_LOCK(hspi);
@@ -1472,6 +1472,11 @@
return HAL_BUSY;
}
+ if ((pData == NULL) || (Size == 0U))
+ {
+ return HAL_ERROR;
+ }
+
if ((hspi->Init.Direction == SPI_DIRECTION_2LINES) && (hspi->Init.Mode == SPI_MODE_MASTER))
{
hspi->State = HAL_SPI_STATE_BUSY_RX;
@@ -1480,11 +1485,6 @@
}
- if ((pData == NULL) || (Size == 0U))
- {
- return HAL_ERROR;
- }
-
/* Process Locked */
__HAL_LOCK(hspi);
@@ -1755,6 +1755,11 @@
return HAL_BUSY;
}
+ if ((pData == NULL) || (Size == 0U))
+ {
+ return HAL_ERROR;
+ }
+
if ((hspi->Init.Direction == SPI_DIRECTION_2LINES) && (hspi->Init.Mode == SPI_MODE_MASTER))
{
hspi->State = HAL_SPI_STATE_BUSY_RX;
@@ -1766,11 +1771,6 @@
return HAL_SPI_TransmitReceive_DMA(hspi, pData, pData, Size);
}
- if ((pData == NULL) || (Size == 0U))
- {
- return HAL_ERROR;
- }
-
/* Process Locked */
__HAL_LOCK(hspi);