From 47e4576b1c9622eae290a249c750cde93317732c Mon Sep 17 00:00:00 2001 From: Huang Qi Date: Fri, 19 Sep 2025 09:17:13 +0800 Subject: [PATCH] arch/xtensa: 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/xtensa/src/common/espressif/esp_temperature_sensor.c | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/arch/xtensa/src/common/espressif/esp_temperature_sensor.c b/arch/xtensa/src/common/espressif/esp_temperature_sensor.c index 7b590330be..701346b0d0 100644 --- a/arch/xtensa/src/common/espressif/esp_temperature_sensor.c +++ b/arch/xtensa/src/common/espressif/esp_temperature_sensor.c @@ -713,7 +713,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) { @@ -752,7 +753,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