[Devel] [PATCH VZ10 12/12] ve: Guard ve from ve_list with ve_list_lock

Pavel Tikhomirov ptikhomirov at virtuozzo.com
Mon Nov 24 14:20:50 MSK 2025


Else we can get use after free on ve_struct.

https://virtuozzo.atlassian.net/browse/VSTOR-118289
Signed-off-by: Pavel Tikhomirov <ptikhomirov at virtuozzo.com>

Feature: ve: ve generic structures
---
 kernel/ve/vecalls.c | 3 +++
 1 file changed, 3 insertions(+)

diff --git a/kernel/ve/vecalls.c b/kernel/ve/vecalls.c
index 6caf269fe5040..a9e82a1335403 100644
--- a/kernel/ve/vecalls.c
+++ b/kernel/ve/vecalls.c
@@ -120,6 +120,8 @@ static int vestat_seq_show(struct seq_file *m, void *v)
 	struct kernel_cpustat kstat;
 
 	entry = (struct list_head *)v;
+
+	guard(mutex)(&ve_list_lock);
 	ve = list_entry(entry, struct ve_struct, ve_list);
 
 	curve = get_exec_env();
@@ -275,6 +277,7 @@ static int veinfo_seq_show(struct seq_file *m, void *v)
 {
 	struct ve_struct *ve;
 
+	guard(mutex)(&ve_list_lock);
 	ve = list_entry((struct list_head *)v, struct ve_struct, ve_list);
 
 	/* second 0 is deprecated ve->class_id */
-- 
2.51.1



More information about the Devel mailing list