[PATCH v1 3/4] arm: boards: protonic-stm32mp: fix stack corruption by passing correct ctx to stm32_bsec_optee_ta_close()
Oleksij Rempel
o.rempel at pengutronix.de
Mon Mar 31 05:30:31 PDT 2025
The `stm32_bsec_optee_ta_open()` function initializes a `struct
tee_context *ctx` through a pointer-to-pointer. However, its counterpart
`stm32_bsec_optee_ta_close()` expects the context pointer directly - not
its address.
Passing `&ctx` (i.e., a `struct tee_context **`) caused incorrect access,
leading to stack corruption. This was detected by the refcounter infrastructure.
Fix this by passing `ctx` directly to `stm32_bsec_optee_ta_close()`.
This bug affected both STM32MP1 and STM32MP13 board implementations.
Signed-off-by: Oleksij Rempel <o.rempel at pengutronix.de>
---
arch/arm/boards/protonic-stm32mp1/board.c | 4 ++--
arch/arm/boards/protonic-stm32mp13/board.c | 4 ++--
2 files changed, 4 insertions(+), 4 deletions(-)
diff --git a/arch/arm/boards/protonic-stm32mp1/board.c b/arch/arm/boards/protonic-stm32mp1/board.c
index 86cda1676b48..4c8ad9e53388 100644
--- a/arch/arm/boards/protonic-stm32mp1/board.c
+++ b/arch/arm/boards/protonic-stm32mp1/board.c
@@ -121,12 +121,12 @@ static int prt_stm32_read_serial(struct device *dev)
serial[PRT_STM32_SERIAL_LEN] = 0;
- stm32_bsec_optee_ta_close(&ctx);
+ stm32_bsec_optee_ta_close(ctx);
return prt_stm32_set_serial(dev, serial);
exit_pta_read:
- stm32_bsec_optee_ta_close(&ctx);
+ stm32_bsec_optee_ta_close(ctx);
dev_err(dev, "Failed to read serial: %pe\n", ERR_PTR(ret));
return ret;
}
diff --git a/arch/arm/boards/protonic-stm32mp13/board.c b/arch/arm/boards/protonic-stm32mp13/board.c
index d48a6dbf8e44..4268db2b384c 100644
--- a/arch/arm/boards/protonic-stm32mp13/board.c
+++ b/arch/arm/boards/protonic-stm32mp13/board.c
@@ -104,12 +104,12 @@ static int prt_stm32_read_serial(struct device *dev)
serial[PRT_STM32_SERIAL_LEN] = 0;
- stm32_bsec_optee_ta_close(&ctx);
+ stm32_bsec_optee_ta_close(ctx);
return prt_stm32_set_serial(dev, serial);
exit_pta_read:
- stm32_bsec_optee_ta_close(&ctx);
+ stm32_bsec_optee_ta_close(ctx);
dev_err(dev, "Failed to read serial: %pe\n", ERR_PTR(ret));
return ret;
}
--
2.39.5
More information about the barebox
mailing list