[PATCH 2/2] liveupdate: luo_session: Fix use after free in luo_session_deserialize()

Dan Carpenter posted 2 patches 5 days, 7 hours ago
[PATCH 2/2] liveupdate: luo_session: Fix use after free in luo_session_deserialize()
Posted by Dan Carpenter 5 days, 7 hours ago
The debug output frees "session" but it was freed on the previous line.
Move the free after the printk().

Fixes: 7eeeec7e1690 ("liveupdate: luo_session: add sessions support")
Signed-off-by: Dan Carpenter <dan.carpenter@linaro.org>
---
 kernel/liveupdate/luo_session.c | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/kernel/liveupdate/luo_session.c b/kernel/liveupdate/luo_session.c
index a572bf689712..b86d45c9dcbd 100644
--- a/kernel/liveupdate/luo_session.c
+++ b/kernel/liveupdate/luo_session.c
@@ -553,9 +553,9 @@ int luo_session_deserialize(void)
 
 		err = luo_session_insert(sh, session);
 		if (err) {
-			luo_session_free(session);
 			pr_warn("Failed to insert session [%s] %pe\n",
 				session->name, ERR_PTR(err));
+			luo_session_free(session);
 			return err;
 		}
 
-- 
2.51.0
Re: [PATCH 2/2] liveupdate: luo_session: Fix use after free in luo_session_deserialize()
Posted by Pasha Tatashin 5 days, 7 hours ago
On Wed, Nov 26, 2025 at 9:51 AM Dan Carpenter <dan.carpenter@linaro.org> wrote:
>
> The debug output frees "session" but it was freed on the previous line.
> Move the free after the printk().
>
> Fixes: 7eeeec7e1690 ("liveupdate: luo_session: add sessions support")
> Signed-off-by: Dan Carpenter <dan.carpenter@linaro.org>
> ---
>  kernel/liveupdate/luo_session.c | 2 +-
>  1 file changed, 1 insertion(+), 1 deletion(-)
>
> diff --git a/kernel/liveupdate/luo_session.c b/kernel/liveupdate/luo_session.c
> index a572bf689712..b86d45c9dcbd 100644
> --- a/kernel/liveupdate/luo_session.c
> +++ b/kernel/liveupdate/luo_session.c
> @@ -553,9 +553,9 @@ int luo_session_deserialize(void)
>
>                 err = luo_session_insert(sh, session);
>                 if (err) {
> -                       luo_session_free(session);
>                         pr_warn("Failed to insert session [%s] %pe\n",
>                                 session->name, ERR_PTR(err));
> +                       luo_session_free(session);
>                         return err;
>                 }

Andrew, could you please add this fix-up to "liveupdate: luo_session:
add sessions support"

Thank you,
Pasha

>
> --
> 2.51.0
>