Else we can get use after free on ve_struct.

https://virtuozzo.atlassian.net/browse/VSTOR-118289
Signed-off-by: Pavel Tikhomirov <[email protected]>

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

_______________________________________________
Devel mailing list
[email protected]
https://lists.openvz.org/mailman/listinfo/devel

Reply via email to