From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from mail.openvz.org (unknown [69.168.225.77]) by lore.virtuozzo.com (Postfix) with ESMTPS id EC68780779 for ; Fri, 2 Oct 2026 21:28:07 +0000 (UTC) Received: from mail.openvz.org (localhost [127.0.0.1]) by mail.openvz.org (8.14.4/8.14.4) with ESMTP id 692LQqGr026202; Sat, 3 Oct 2026 00:26:54 +0300 DKIM-Filter: OpenDKIM Filter v2.11.0 mail.openvz.org 692LQqGr026202 Authentication-Results: mail.openvz.org; dkim=fail reason="signature verification failed" (2048-bit key) header.d=virtuozzo.com header.i=@virtuozzo.com header.b="OYBBZsgy" Received: from mail-wr1-f72.google.com (mail-wr1-f72.google.com [209.85.221.72]) by mail.openvz.org (8.14.4/8.14.4) with ESMTP id 692LQipZ026164 (version=TLSv1/SSLv3 cipher=AES128-GCM-SHA256 bits=128 verify=FAIL) for ; Sat, 3 Oct 2026 00:26:44 +0300 DKIM-Filter: OpenDKIM Filter v2.11.0 mail.openvz.org 692LQipZ026164 Received: by mail-wr1-f72.google.com with SMTP id ffacd0b85a97d-48b026b8133so311447f8f.0 for ; Fri, 02 Oct 2026 14:26:44 -0700 (PDT) X-Forwarded-Encrypted: i=2; AKwUvBwFC7nJNJECf/oM0N5+vgiNVflCRNrpJknJGVxyqw1I50rjfCRaUDIcIb98SE3kG6vti+n88g==@openvz.org X-Gm-Message-State: AFq9FYIJbmulq+ILWKedHH+KCPD11DT2WkTI7RgBkq5wGhQe4U5hhGNT 6tgP8hdoOP8YDyCcJKKMu34yN4uQRufTEc/FB4Nq7l53OXsUIJS81pix3bSNgNplojqpZQLI38x XTs2V/5iLYuPx+1jDo40W+swHrCxQOG5EcojY7usTyWC/UT+5jOH4Yw== X-Gm-Gg: AYBFou3+QgmyGd2V6eZT3hHX4nBCSI4TT2/7Z+aNr4RJfjSfrsuvUMVl/u0acXhxQ7X zoArDJC/2FxleJZZQyXc+0MaMStstijmbch+RBvwZl1FWZjPg6PBDkFaJfBASsAEu/Vp7zvh84W /HdzDevkOKZ3auepXyzWqZqjrcrqR9Uu38M8k2uLD0YKZCqxPbnKFBXZTNo2xWwily4b8I2nNAZ 3ElYe/MVOyMYDhD+lGVRmguoDiAKqyOM1d7qJ/qZxp8S4DdIkwFmNcpe67hrgrhS2kUyLC0fDoR ay8I4wE/exlhIriR+yXflla3HZCpaHhmc9Mxsr30D74oZUDjrwymu3Mv3mCPyeyHIBHIYynHcTP DVLfNwtDXuZO0NuEh5lamyZ/2hiXPJg== X-Received: by 2002:a05:6000:25c3:b0:48b:722:1c6d with SMTP id ffacd0b85a97d-48c440e1b11mr4110036f8f.38.1790976404254; Fri, 02 Oct 2026 14:26:44 -0700 (PDT) X-Received: by 2002:a05:6000:25c3:b0:48b:722:1c6d with SMTP id ffacd0b85a97d-48c440e1b11mr4110017f8f.38.1790976403784; Fri, 02 Oct 2026 14:26:43 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1790976403; cv=none; d=google.com; s=arc-20260327; b=eT0wT1wZS8s5eEmZ8CSPVeMpRabmiM9GJimzutCMYiQKpR6sbeFKP0B0ohqly7L1nQ r4Awm2d6nP7B1Qfmuf3rAMj49bsd1Tcd+4ZjOcM4fz8FGigt/FDcLoGrbia5Hj3HObnv NYgqbb+O5BdsGPA2h9XCqHsIsU8k4OysbhekCAw8aOjL+p51n+XxRfWXT/mgVmtuXWOy e4RXrGa6+pPdqEJcvfn2OKXl53wE2fr1Ul4/ZU+Ceyqy2V3/3/fVOirsKblN9puz9C9l NDBq1Hpxt1cBp+g1qgyJe40ZwpkWkmMYlIY0rF6jRUZJkomQ8dpheqoM0KD9IUb77QZ2 kFkA== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20260327; h=cc:to:in-reply-to:references:message-id:content-transfer-encoding :mime-version:subject:date:from:dkim-signature; bh=Flc5+rwFYDmjEyIExfCqJmWdq4nBQPWyMuIrpi7w6rs=; fh=vUECVpjOjIdz431s8bRiKYBdScEDOVhPZlDu2AQ+txg=; b=CU6dje4Qh0WIYDH+FGsXMazNe95FGXjm0x/A0OZJ+/tnEypLQ7rpciFcbwWQtkW3cN e5ujwEU3o3r3T0SeL424L7P3McWVEGXmuOemC3A384YurpNr4r+4vUjwMeVovRV1o5Cw XwDw6pB3Q5BEiEFeTK+Gdf5Cnj4QFUoOTO/UEx8J2fW0fM397/4vOej03iKaKVXQR7WD iVk8r5sSFX+jzishNbshIrppsalWkvp/dfaogCqsRwfDqbGXeVCiGSJHMIQG4BugmDc+ sd8oGTfPTJ0FTDYbvoHpyG/GhSzfIEQ/hGEU0htiTVmq4iRPVcLzUVner4VajvhaUjmJ r3cw==; dara=google.com ARC-Authentication-Results: i=1; mx.google.com; dkim=pass header.i=@virtuozzo.com header.s=relay header.b=OYBBZsgy; spf=pass (google.com: domain of vladimir.riabchun@virtuozzo.com designates 130.117.225.111 as permitted sender) smtp.mailfrom=vladimir.riabchun@virtuozzo.com; dmarc=pass (p=QUARANTINE sp=QUARANTINE dis=NONE) header.from=virtuozzo.com Received: from relay.virtuozzo.com (relay.virtuozzo.com. [130.117.225.111]) by mx.google.com with ESMTPS id ffacd0b85a97d-48b5b421bc1si6856882f8f.236.2026.10.02.14.26.43 for (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Fri, 02 Oct 2026 14:26:43 -0700 (PDT) Received-SPF: pass (google.com: domain of vladimir.riabchun@virtuozzo.com designates 130.117.225.111 as permitted sender) client-ip=130.117.225.111; Authentication-Results: mx.google.com; dkim=pass header.i=@virtuozzo.com header.s=relay header.b=OYBBZsgy; spf=pass (google.com: domain of vladimir.riabchun@virtuozzo.com designates 130.117.225.111 as permitted sender) smtp.mailfrom=vladimir.riabchun@virtuozzo.com; dmarc=pass (p=QUARANTINE sp=QUARANTINE dis=NONE) header.from=virtuozzo.com DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed; d=virtuozzo.com; s=relay; h=Message-Id:Content-Type:MIME-Version:Subject:Date :From; bh=Flc5+rwFYDmjEyIExfCqJmWdq4nBQPWyMuIrpi7w6rs=; b=OYBBZsgybe599wCLIAM GnRL/Sq8sNyJCPnOHqzSPjasSwO0rSQTGLWLy5bgLSRciHAXMyz8gNMgiZANRx7M33u1KTA/r8uX0 Yj7D5X9X91iaeTt7QKEv5fjsLBHrPElbMbMGO0WbfCzQiONfbtXT2gZQNGwdUenQlrF7iFIogboL6 0zhRBSDLANLtWH9yXBCP7CvxD7FaBHBvPQxkyQywRCY3CjccRtyfZ+N8ecN/clVLUe0UG1/DcO8SF wz9I7auOhgdK0nzWJ7jMAdOPuaf97jUeh7gM5XMFeXoyfBwMlKt2+ToMOTnyqehsa38iCLGTWDJAi 4LIVtvExL5+HZzA==; Received: from ch-demo-asa.virtuozzo.com ([130.117.225.8] helo=192.168.1.87) by relay.virtuozzo.com with esmtps (TLS1.3) tls TLS_AES_256_GCM_SHA384 (Exim 4.96) (envelope-from ) id 1xCkj2-00GcBK-0y; Fri, 02 Oct 2026 23:26:39 +0200 From: Vladimir Riabchun Date: Fri, 02 Oct 2026 23:26:11 +0200 MIME-Version: 1.0 Message-Id: <20261002-ve-printk-irq-v1-2-cb55896d455c@virtuozzo.com> References: <20261002-ve-printk-irq-v1-0-cb55896d455c@virtuozzo.com> In-Reply-To: <20261002-ve-printk-irq-v1-0-cb55896d455c@virtuozzo.com> To: Konstantin Khorenko , vasileios.almpanis@virtuozzo.com X-Mailer: b4 0.14.3 X-OZ-Fwd: true Cc: devel@openvz.org Subject: [Devel] [PATCH hci-8.1 2/6] ve/printk: Report potentially leaking usage of ve_printk functions X-BeenThere: devel@openvz.org X-Mailman-Version: 2.1.12 Precedence: list List-Id: OpenVZ development List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Content-Type: text/plain; charset="us-ascii" Content-Transfer-Encoding: 7bit Sender: devel-bounces@openvz.org Errors-To: devel-bounces@openvz.org We don't want to rely on get_exec_env() value in non-task context. When this happens, let's issue a WARN and either reject printing or return host log state. Some messages may probably go to host dmesg instead of CT, but at least we won't leak info to random container. https://virtuozzo.atlassian.net/browse/VSTOR-146839 Feature: ve printk Signed-off-by: Vladimir Riabchun --- drivers/base/core.c | 4 +++- kernel/printk/printk.c | 11 ++++++++--- 2 files changed, 11 insertions(+), 4 deletions(-) diff --git a/drivers/base/core.c b/drivers/base/core.c index 2d233ffb5661..a92c80603ae3 100644 --- a/drivers/base/core.c +++ b/drivers/base/core.c @@ -4952,7 +4952,9 @@ int ve_dev_printk_emit(int dst, int level, const struct device *dev, const char if (ve_is_super(get_exec_env()) || (dst & VE0_LOG)) r = dev_vprintk_emit(level, dev, fmt, args); - if ((dst & VE_LOG) && !ve_is_super(get_exec_env())) + + /* Report IRQ usage here - printing to VE requires explicit ve reference */ + if ((dst & VE_LOG) && !WARN_ON_ONCE(!in_task()) && !ve_is_super(get_exec_env())) r = ve_dev_vprintk_emit(level, dev, fmt, args2); va_end(args2); diff --git a/kernel/printk/printk.c b/kernel/printk/printk.c index efe2c3279c85..b06fc835d7c7 100644 --- a/kernel/printk/printk.c +++ b/kernel/printk/printk.c @@ -560,7 +560,8 @@ struct log_state *ve_log_state(void) { struct log_state *log = &init_log_state; #ifdef CONFIG_VE - if (get_exec_env()->log_state) + /* get_exec_env() is reliable only in task context */ + if (!WARN_ON_ONCE(!in_task()) && get_exec_env()->log_state) log = get_exec_env()->log_state; #endif return log; @@ -2540,7 +2541,9 @@ static asmlinkage int ve_vprintk(int dst, const char *fmt, va_list args) va_copy(args2, args); if (ve_is_super(get_exec_env()) || (dst & VE0_LOG)) r = vprintk(fmt, args); - if ((dst & VE_LOG) && !ve_is_super(get_exec_env())) + + /* Report IRQ usage here - printing to VE requires explicit ve reference */ + if ((dst & VE_LOG) && !WARN_ON_ONCE(!in_task()) && !ve_is_super(get_exec_env())) r = ve_vprintk_emit(0, LOGLEVEL_DEFAULT, NULL, fmt, args2); va_end(args2); @@ -2574,7 +2577,9 @@ static asmlinkage int ve_vprintk_deferred(int dst, const char *fmt, va_list args va_copy(args2, args); if (ve_is_super(get_exec_env()) || (dst & VE0_LOG)) r = vprintk_emit(0, LOGLEVEL_SCHED, NULL, fmt, args); - if ((dst & VE_LOG) && !ve_is_super(get_exec_env())) + + /* Report IRQ usage here - printing to VE requires explicit ve reference */ + if ((dst & VE_LOG) && !WARN_ON_ONCE(!in_task()) && !ve_is_super(get_exec_env())) r = ve_vprintk_emit(0, LOGLEVEL_SCHED, NULL, fmt, args2); va_end(args2); -- 2.52.0 _______________________________________________ Devel mailing list Devel@openvz.org https://lists.openvz.org/mailman/listinfo/devel