From 3af0ab64bbdcd9b45450363c4e2dfeb8804fa9f9 Mon Sep 17 00:00:00 2001 From: Huang Qi Date: Sat, 20 Sep 2025 12:05:32 +0800 Subject: [PATCH] arch/risc-v: espressif: temperature: Fix incorrect pointer casting Fix bug in temperature sensor driver where direct casting of lower half structure pointer could lead to incorrect memory access. Signed-off-by: Huang Qi --- arch/risc-v/src/common/espressif/esp_temperature_sensor.c | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/arch/risc-v/src/common/espressif/esp_temperature_sensor.c b/arch/risc-v/src/common/espressif/esp_temperature_sensor.c index b4ad23588c..4ba7478d46 100644 --- a/arch/risc-v/src/common/espressif/esp_temperature_sensor.c +++ b/arch/risc-v/src/common/espressif/esp_temperature_sensor.c @@ -714,7 +714,8 @@ static int esp_temperature_sensor_set_interval( struct file *filep, uint32_t *period_us) { - struct esp_temp_priv_s *priv = (struct esp_temp_priv_s *)lower; + struct esp_temp_priv_s *priv = + container_of(lower, struct esp_temp_priv_s, lower); if (*period_us < ESP_TEMP_MIN_INTERVAL) { @@ -753,7 +754,8 @@ static int esp_temperature_sensor_activate( struct file *filep, bool enable) { - struct esp_temp_priv_s *priv = (struct esp_temp_priv_s *)lower; + struct esp_temp_priv_s *priv = + container_of(lower, struct esp_temp_priv_s, lower); #ifdef CONFIG_ESPRESSIF_TEMP_UORB_POLL bool start_thread = false; #endif