From 72d7c6a3c5706d87e86c3591975058083d895b1b Mon Sep 17 00:00:00 2001 From: Yu Wu Date: Tue, 13 Jun 2023 19:10:30 +0800 Subject: [PATCH] mm-drivers: hw_fence: avoid dereference before NULL check Fix hw_fence_wait_client dereferenced before NULL check. Change-Id: Ib34c4969c9042f4f815b2eca75b553bc23d4b6cc Signed-off-by: Yu Wu --- hw_fence/src/hw_fence_drv_priv.c | 9 ++++++--- 1 file changed, 6 insertions(+), 3 deletions(-) diff --git a/hw_fence/src/hw_fence_drv_priv.c b/hw_fence/src/hw_fence_drv_priv.c index e084e61882..52d1159b2f 100644 --- a/hw_fence/src/hw_fence_drv_priv.c +++ b/hw_fence/src/hw_fence_drv_priv.c @@ -1634,14 +1634,17 @@ static void _signal_all_wait_clients(struct hw_fence_driver_data *drv_data, for (wait_client_id = 0; wait_client_id <= drv_data->rxq_clients_num; wait_client_id++) { if (hw_fence->wait_client_mask & BIT(wait_client_id)) { hw_fence_wait_client = drv_data->clients[wait_client_id]; + + if (!hw_fence_wait_client) + continue; + data_id = hw_fence_get_client_data_id(hw_fence_wait_client->client_id_ext); if (data_id < HW_FENCE_MAX_CLIENTS_WITH_DATA) client_data = hw_fence->client_data[data_id]; - if (hw_fence_wait_client) - _fence_ctl_signal(drv_data, hw_fence_wait_client, hw_fence, - hash, 0, client_data, error); + _fence_ctl_signal(drv_data, hw_fence_wait_client, hw_fence, + hash, 0, client_data, error); } } }