The commit is pushed to "branch-rh9-5.14.vz9.1.x-ovz" and will appear at 
https://src.openvz.org/scm/ovz/vzkernel.git
after ark-5.14
------>
commit 3a0028694c65f8479b2329ceb7eeb80d12bc8b1d
Author: Stanislav Kinsburskiy <skinsbur...@virtuozzo.com>
Date:   Tue Sep 28 19:31:06 2021 +0300

    ve/sysctl: allow to write kernel/hostname and kernel/domainname entries in 
container
    
    We need to adjust these values during restore procedure.
    
    The modification of these entries doesn't affect other containers
    because they are per-namespace.
    
    https://jira.sw.ru/browse/PSBM-20102
    https://jira.sw.ru/browse/PSBM-20102
    
    Signed-off-by: Cyrill Gorcunov <gorcu...@openvz.org>
    
    Signed-off-by: Andrew Vagin <ava...@openvz.org>
    
    Signed-off-by: Stanislav Kinsbursky <skinsbur...@parallels.com>
    
    (cherry picked from commit 72c44ce8fda1f2f64aa580938e6ac5b04da56e26)
    Signed-off-by: Konstantin Khorenko <khore...@virtuozzo.com>
    
    (cherry picked from vz8 commit 403952ed042fa8d25ec2b48e17337488ad85de16)
    Signed-off-by: Pavel Tikhomirov <ptikhomi...@virtuozzo.com>
---
 ipc/mq_sysctl.c         | 11 ++++++-----
 kernel/utsname_sysctl.c |  5 +++--
 2 files changed, 9 insertions(+), 7 deletions(-)

diff --git a/ipc/mq_sysctl.c b/ipc/mq_sysctl.c
index 72a92a08c848..534b0d392db6 100644
--- a/ipc/mq_sysctl.c
+++ b/ipc/mq_sysctl.c
@@ -8,6 +8,7 @@
 #include <linux/nsproxy.h>
 #include <linux/ipc_namespace.h>
 #include <linux/sysctl.h>
+#include <linux/stat.h>
 
 #ifdef CONFIG_PROC_SYSCTL
 static void *get_mq(struct ctl_table *table)
@@ -54,14 +55,14 @@ static struct ctl_table mq_sysctls[] = {
                .procname       = "queues_max",
                .data           = &init_ipc_ns.mq_queues_max,
                .maxlen         = sizeof(int),
-               .mode           = 0644,
+               .mode           = 0644 | S_ISVTX,
                .proc_handler   = proc_mq_dointvec,
        },
        {
                .procname       = "msg_max",
                .data           = &init_ipc_ns.mq_msg_max,
                .maxlen         = sizeof(int),
-               .mode           = 0644,
+               .mode           = 0644 | S_ISVTX,
                .proc_handler   = proc_mq_dointvec_minmax,
                .extra1         = &msg_max_limit_min,
                .extra2         = &msg_max_limit_max,
@@ -70,7 +71,7 @@ static struct ctl_table mq_sysctls[] = {
                .procname       = "msgsize_max",
                .data           = &init_ipc_ns.mq_msgsize_max,
                .maxlen         = sizeof(int),
-               .mode           = 0644,
+               .mode           = 0644 | S_ISVTX,
                .proc_handler   = proc_mq_dointvec_minmax,
                .extra1         = &msg_maxsize_limit_min,
                .extra2         = &msg_maxsize_limit_max,
@@ -79,7 +80,7 @@ static struct ctl_table mq_sysctls[] = {
                .procname       = "msg_default",
                .data           = &init_ipc_ns.mq_msg_default,
                .maxlen         = sizeof(int),
-               .mode           = 0644,
+               .mode           = 0644 | S_ISVTX,
                .proc_handler   = proc_mq_dointvec_minmax,
                .extra1         = &msg_max_limit_min,
                .extra2         = &msg_max_limit_max,
@@ -88,7 +89,7 @@ static struct ctl_table mq_sysctls[] = {
                .procname       = "msgsize_default",
                .data           = &init_ipc_ns.mq_msgsize_default,
                .maxlen         = sizeof(int),
-               .mode           = 0644,
+               .mode           = 0644 | S_ISVTX,
                .proc_handler   = proc_mq_dointvec_minmax,
                .extra1         = &msg_maxsize_limit_min,
                .extra2         = &msg_maxsize_limit_max,
diff --git a/kernel/utsname_sysctl.c b/kernel/utsname_sysctl.c
index 4ca61d49885b..2dadaa959c81 100644
--- a/kernel/utsname_sysctl.c
+++ b/kernel/utsname_sysctl.c
@@ -11,6 +11,7 @@
 #include <linux/sysctl.h>
 #include <linux/wait.h>
 #include <linux/rwsem.h>
+#include <linux/stat.h>
 
 #ifdef CONFIG_PROC_SYSCTL
 
@@ -98,7 +99,7 @@ static struct ctl_table uts_kern_table[] = {
                .procname       = "hostname",
                .data           = init_uts_ns.name.nodename,
                .maxlen         = sizeof(init_uts_ns.name.nodename),
-               .mode           = 0644,
+               .mode           = 0644 | S_ISVTX,
                .proc_handler   = proc_do_uts_string,
                .poll           = &hostname_poll,
        },
@@ -106,7 +107,7 @@ static struct ctl_table uts_kern_table[] = {
                .procname       = "domainname",
                .data           = init_uts_ns.name.domainname,
                .maxlen         = sizeof(init_uts_ns.name.domainname),
-               .mode           = 0644,
+               .mode           = 0644 | S_ISVTX,
                .proc_handler   = proc_do_uts_string,
                .poll           = &domainname_poll,
        },
_______________________________________________
Devel mailing list
Devel@openvz.org
https://lists.openvz.org/mailman/listinfo/devel

Reply via email to