From nobody Mon Feb 9 20:17:35 2026 Delivered-To: importer@patchew.org Received-SPF: pass (zoho.com: domain of gnu.org designates 208.118.235.17 as permitted sender) client-ip=208.118.235.17; envelope-from=qemu-devel-bounces+importer=patchew.org@nongnu.org; helo=lists.gnu.org; Authentication-Results: mx.zohomail.com; spf=pass (zoho.com: domain of gnu.org designates 208.118.235.17 as permitted sender) smtp.mailfrom=qemu-devel-bounces+importer=patchew.org@nongnu.org Return-Path: Received: from lists.gnu.org (208.118.235.17 [208.118.235.17]) by mx.zohomail.com with SMTPS id 1509718625169798.5631883578471; Fri, 3 Nov 2017 07:17:05 -0700 (PDT) Received: from localhost ([::1]:36895 helo=lists.gnu.org) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1eAcmC-0001F0-12 for importer@patchew.org; Fri, 03 Nov 2017 10:16:52 -0400 Received: from eggs.gnu.org ([2001:4830:134:3::10]:39552) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1eAapH-0006gR-MV for qemu-devel@nongnu.org; Fri, 03 Nov 2017 08:11:57 -0400 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1eAapD-0007bE-Ma for qemu-devel@nongnu.org; Fri, 03 Nov 2017 08:11:55 -0400 Received: from 19pmail.ess.barracuda.com ([64.235.154.231]:40400) by eggs.gnu.org with esmtps (TLS1.0:DHE_RSA_AES_256_CBC_SHA1:32) (Exim 4.71) (envelope-from ) id 1eAapD-0007Vd-E9 for qemu-devel@nongnu.org; Fri, 03 Nov 2017 08:11:51 -0400 Received: from MIPSMAIL01.mipstec.com (mailrelay.mips.com [12.201.5.28]) by mx1411.ess.rzc.cudaops.com (version=TLSv1.2 cipher=ECDHE-RSA-AES256-SHA384 bits=256 verify=NO); Fri, 03 Nov 2017 12:11:38 +0000 Received: from LDT-J-COWGILL.mipstec.com (10.150.130.85) by MIPSMAIL01.mipstec.com (10.20.43.31) with Microsoft SMTP Server (TLS) id 14.3.361.1; Fri, 3 Nov 2017 05:06:59 -0700 From: James Cowgill To: Riku Voipio Date: Fri, 3 Nov 2017 12:07:03 +0000 Message-ID: <20171103120703.15749-1-james.cowgill@mips.com> X-Mailer: git-send-email 2.15.0 MIME-Version: 1.0 X-Originating-IP: [10.150.130.85] X-BESS-ID: 1509711098-452059-3093-681935-2 X-BESS-VER: 2017.12.1-r1710261623 X-BESS-Apparent-Source-IP: 12.201.5.28 X-BESS-Outbound-Spam-Score: 0.00 X-BESS-Outbound-Spam-Report: Code version 3.2, rules version 3.2.2.186547 Rule breakdown below pts rule name description ---- ---------------------- -------------------------------- 0.00 BSF_BESS_OUTBOUND META: BESS Outbound X-BESS-Outbound-Spam-Status: SCORE=0.00 using account:ESS59374 scores of KILL_LEVEL=7.0 tests=BSF_BESS_OUTBOUND X-BESS-BRTS-Status: 1 X-detected-operating-system: by eggs.gnu.org: Genre and OS details not recognized. X-Received-From: 64.235.154.231 X-Mailman-Approved-At: Fri, 03 Nov 2017 10:15:35 -0400 Subject: [Qemu-devel] [PATCH] linux-user: return EINVAL from prctl(PR_*_SECCOMP) X-BeenThere: qemu-devel@nongnu.org X-Mailman-Version: 2.1.21 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Cc: James Cowgill , Laurent Vivier , qemu-devel@nongnu.org Errors-To: qemu-devel-bounces+importer=patchew.org@nongnu.org Sender: "Qemu-devel" X-ZohoMail: RSF_0 Z_629925259 SPT_0 Content-Transfer-Encoding: quoted-printable Content-Type: text/plain; charset="utf-8" If an application tries to install a seccomp filter using prctl(PR_SET_SECCOMP), the filter is likely for the target instead of the h= ost architecture. This will probably cause qemu to be immediately killed when it executes another syscall. Prevent this from happening by returning EINVAL from both seccomp prctl calls. This is the error returned by the kernel when seccomp support is disabled. Fixes: https://bugs.launchpad.net/qemu/+bug/1726394 Signed-off-by: James Cowgill Reviewed-by: Laurent Vivier --- linux-user/syscall.c | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/linux-user/syscall.c b/linux-user/syscall.c index d4497dec5d..43cd5fb2bb 100644 --- a/linux-user/syscall.c +++ b/linux-user/syscall.c @@ -10482,6 +10482,10 @@ abi_long do_syscall(void *cpu_env, int num, abi_lo= ng arg1, break; } #endif + case PR_GET_SECCOMP: + case PR_SET_SECCOMP: + ret =3D -TARGET_EINVAL; + break; default: /* Most prctl options have no pointer arguments */ ret =3D get_errno(prctl(arg1, arg2, arg3, arg4, arg5)); --=20 2.15.0