From 2954dcf4ed5f6df346c6f962d925d895ddb9427e Mon Sep 17 00:00:00 2001 From: Jacob Siverskog Date: Tue, 23 Mar 2021 17:44:59 +0100 Subject: [PATCH] modbus: fix potential null pointer dereference reorganize code so that null pointer check is done prior to accessing element. Signed-off-by: Jacob Siverskog --- subsys/modbus/modbus_serial.c | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/subsys/modbus/modbus_serial.c b/subsys/modbus/modbus_serial.c index 5e748b08beb..06e44bd2414 100644 --- a/subsys/modbus/modbus_serial.c +++ b/subsys/modbus/modbus_serial.c @@ -404,13 +404,15 @@ static void cb_handler_tx(struct modbus_context *ctx) static void uart_cb_handler(const struct device *dev, void *app_data) { struct modbus_context *ctx = (struct modbus_context *)app_data; - struct modbus_serial_config *cfg = ctx->cfg; + struct modbus_serial_config *cfg; if (ctx == NULL) { LOG_ERR("Modbus hardware is not properly initialized"); return; } + cfg = ctx->cfg; + while (uart_irq_update(cfg->dev) && uart_irq_is_pending(cfg->dev)) { if (uart_irq_rx_ready(cfg->dev)) {