From d3ffa8d089f0dfddf29abe76d4ded44feb8d8421 Mon Sep 17 00:00:00 2001 From: Francois Ramu Date: Tue, 12 Nov 2019 16:13:03 +0100 Subject: [PATCH] driver: serial: Error handling issues in uart_stm32_set_baudrate This patch tests the return code when calling clock_control_get_rate and completes the issue #20503 seen on watchdog [Coverity CID :205655] Fixes #20503 Signed-off-by: Francois Ramu --- drivers/serial/uart_stm32.c | 11 ++++++++--- 1 file changed, 8 insertions(+), 3 deletions(-) diff --git a/drivers/serial/uart_stm32.c b/drivers/serial/uart_stm32.c index 69168ebc560..3d0dd1ca846 100644 --- a/drivers/serial/uart_stm32.c +++ b/drivers/serial/uart_stm32.c @@ -24,6 +24,9 @@ #include #include "uart_stm32.h" +#include +LOG_MODULE_REGISTER(uart_stm32); + /* convenience defines */ #define DEV_CFG(dev) \ ((const struct uart_stm32_config * const)(dev)->config->config_info) @@ -43,10 +46,12 @@ static inline void uart_stm32_set_baudrate(struct device *dev, u32_t baud_rate) u32_t clock_rate; /* Get clock rate */ - clock_control_get_rate(data->clock, + if (clock_control_get_rate(data->clock, (clock_control_subsys_t *)&config->pclken, - &clock_rate); - + &clock_rate) < 0) { + LOG_ERR("Failed call clock_control_get_rate"); + return; + } #ifdef CONFIG_LPUART_1