Browse Source

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 <[email protected]>
Yu Wu 2 years ago
parent
commit
72d7c6a3c5
1 changed files with 6 additions and 3 deletions
  1. 6 3
      hw_fence/src/hw_fence_drv_priv.c

+ 6 - 3
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);
 		}
 	}
 }