From nobody Thu Apr 25 04:06:37 2024 Delivered-To: importer@patchew.org Received-SPF: pass (zohomail.com: domain of lists.xenproject.org designates 192.237.175.120 as permitted sender) client-ip=192.237.175.120; envelope-from=xen-devel-bounces@lists.xenproject.org; helo=lists.xenproject.org; Authentication-Results: mx.zohomail.com; spf=pass (zohomail.com: domain of lists.xenproject.org designates 192.237.175.120 as permitted sender) smtp.mailfrom=xen-devel-bounces@lists.xenproject.org; dmarc=fail(p=none dis=none) header.from=antioche.eu.org ARC-Seal: i=1; a=rsa-sha256; t=1610475580; cv=none; d=zohomail.com; s=zohoarc; b=Wnkq1qm9/5EeoWEIb583aVZssGXWiE8TnI4jhJLRo90RUbVuZAA2FUDumArb5IP4PPIUrg+3su3k3h2dWe/VzYkYUOVdzFEFMk+IGmr7jgVLjpTCEUiBS92b1KPeF93pvXPWD1sMnuPnbhuuk+zhFcPMBjrRmgjV6Ln1gX/VKgQ= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1610475580; h=Content-Transfer-Encoding:Cc:Date:From:In-Reply-To:List-Subscribe:List-Post:List-Id:List-Help:List-Unsubscribe:MIME-Version:Message-ID:References:Sender:Subject:To; bh=coCnXb0V3BVV8lUVkbMhwc3CVV81+n5xb3I8FcheEXM=; b=Akl7sZ3K02lL7/6mV+ayeGrBR4/L7QGfaB+V/z6n4Y1r+OcnnwmXfXhOnl5lZkKqQglxQ7XH/XOnlOlBLKG3f6L69Ur7UDuW6EiWDZ2RBryqABao9W2RIRPHThOFew5ywT6/lWb9mSwtVac4wWHnti9wun90yO3mTyiGjuEqy0s= ARC-Authentication-Results: i=1; mx.zohomail.com; spf=pass (zohomail.com: domain of lists.xenproject.org designates 192.237.175.120 as permitted sender) smtp.mailfrom=xen-devel-bounces@lists.xenproject.org; dmarc=fail header.from= (p=none dis=none) header.from= Return-Path: Received: from lists.xenproject.org (lists.xenproject.org [192.237.175.120]) by mx.zohomail.com with SMTPS id 161047558046880.93573916348669; Tue, 12 Jan 2021 10:19:40 -0800 (PST) Received: from list by lists.xenproject.org with outflank-mailman.65878.116826 (Exim 4.92) (envelope-from ) id 1kzOGK-0005BI-7q; Tue, 12 Jan 2021 18:19:24 +0000 Received: by outflank-mailman (output) from mailman id 65878.116826; Tue, 12 Jan 2021 18:19:24 +0000 Received: from localhost ([127.0.0.1] helo=lists.xenproject.org) by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from ) id 1kzOGJ-0005AP-Dq; Tue, 12 Jan 2021 18:19:23 +0000 Received: by outflank-mailman (input) for mailman id 65878; Tue, 12 Jan 2021 18:19:21 +0000 Received: from us1-rack-iad1.inumbo.com ([172.99.69.81]) by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from ) id 1kzOCP-0003Yo-1E for xen-devel@lists.xenproject.org; Tue, 12 Jan 2021 18:15:21 +0000 Received: from isis.lip6.fr (unknown [2001:660:3302:283c::2]) by us1-rack-iad1.inumbo.com (Halon) with ESMTPS id 44fc2fa7-d9b4-482b-a3ee-bfb169d0e383; Tue, 12 Jan 2021 18:13:56 +0000 (UTC) Received: from asim.lip6.fr (asim.lip6.fr [132.227.86.2]) by isis.lip6.fr (8.15.2/8.15.2) with ESMTP id 10CIDq6P013903; Tue, 12 Jan 2021 19:13:52 +0100 (CET) Received: from armandeche.soc.lip6.fr (armandeche [132.227.63.133]) by asim.lip6.fr (8.15.2/8.14.4) with ESMTP id 10CIDkcV023498; Tue, 12 Jan 2021 19:13:46 +0100 (MET) Received: by armandeche.soc.lip6.fr (Postfix, from userid 20331) id 8D3087218; Tue, 12 Jan 2021 19:13:46 +0100 (MET) X-Outflank-Mailman: Message body and most headers restored to incoming version X-BeenThere: xen-devel@lists.xenproject.org List-Id: Xen developer discussion List-Unsubscribe: , List-Post: List-Help: List-Subscribe: , Errors-To: xen-devel-bounces@lists.xenproject.org Precedence: list Sender: "Xen-devel" X-Inumbo-ID: 44fc2fa7-d9b4-482b-a3ee-bfb169d0e383 From: Manuel Bouyer To: xen-devel@lists.xenproject.org Cc: Manuel Bouyer , Ian Jackson , Wei Liu , Anthony PERARD Subject: [PATCH] libs/light: make it build without setresuid() Date: Tue, 12 Jan 2021 19:12:36 +0100 Message-Id: <20210112181242.1570-16-bouyer@antioche.eu.org> X-Mailer: git-send-email 2.27.0 In-Reply-To: <20210112181242.1570-1-bouyer@antioche.eu.org> References: <20210112181242.1570-1-bouyer@antioche.eu.org> MIME-Version: 1.0 Content-Transfer-Encoding: quoted-printable X-Greylist: Sender IP whitelisted, not delayed by milter-greylist-4.4.3 (isis.lip6.fr [132.227.60.2]); Tue, 12 Jan 2021 19:13:52 +0100 (CET) X-Scanned-By: MIMEDefang 2.78 on 132.227.60.2 Content-Type: text/plain; charset="utf-8" From: Manuel Bouyer NetBSD doesn't have setresuid(). Add a configure check for it, and use plain setuid() if !HAVE_SETRESUID Signed-off-by: Manuel Bouyer --- tools/configure | 13 +++++++++++++ tools/configure.ac | 3 +++ tools/libs/light/libxl_dm.c | 10 ++++++++++ 3 files changed, 26 insertions(+) diff --git a/tools/configure b/tools/configure index 131112c41e..5e3793709e 100755 --- a/tools/configure +++ b/tools/configure @@ -9299,6 +9299,19 @@ _ACEOF =20 esac =20 +# NetBSD doesnt have setresuid (yet) +for ac_func in setresuid +do : + ac_fn_c_check_func "$LINENO" "setresuid" "ac_cv_func_setresuid" +if test "x$ac_cv_func_setresuid" =3D xyes; then : + cat >>confdefs.h <<_ACEOF +#define HAVE_SETRESUID 1 +_ACEOF + +fi +done + + # Checks for header files. for ac_header in yajl/yajl_version.h sys/eventfd.h valgrind/memcheck.h utm= p.h do : diff --git a/tools/configure.ac b/tools/configure.ac index ee8ba5ff24..04f78bf21d 100644 --- a/tools/configure.ac +++ b/tools/configure.ac @@ -457,6 +457,9 @@ AC_CHECK_DECLS([fdt_first_subnode, fdt_next_subnode],,,= [#include ]) AC_CHECK_DECLS([fdt_property_u32],,,[#include ]) esac =20 +# NetBSD doesnt have setresuid (yet) +AC_CHECK_FUNCS([setresuid]) + # Checks for header files. AC_CHECK_HEADERS([yajl/yajl_version.h sys/eventfd.h valgrind/memcheck.h ut= mp.h]) =20 diff --git a/tools/libs/light/libxl_dm.c b/tools/libs/light/libxl_dm.c index 8866c3f5ad..7651429b9f 100644 --- a/tools/libs/light/libxl_dm.c +++ b/tools/libs/light/libxl_dm.c @@ -3653,6 +3653,7 @@ static int kill_device_model_uid_child(libxl__destroy= _devicemodel_state *ddms, assert(reaper_uid); assert(dm_kill_uid); =20 +#if HAVE_SETRESUID LOGD(DEBUG, domid, "DM reaper: calling setresuid(%d, %d, 0)", reaper_uid, dm_kill_uid); r =3D setresuid(reaper_uid, dm_kill_uid, 0); @@ -3662,6 +3663,15 @@ static int kill_device_model_uid_child(libxl__destro= y_devicemodel_state *ddms, rc =3D rc ?: ERROR_FAIL; goto out; } +#else /* HAVE_SETRESUID */ + LOGD(DEBUG, domid, "DM reaper: calling setuid(%d)", dm_kill_uid); + r =3D setuid(dm_kill_uid); + if (r) { + LOGED(ERROR, domid, "setuid to %d", dm_kill_uid); + rc =3D rc ?: ERROR_FAIL; + goto out; + } +#endif /* HAVE_SETRESUID */ =20 /* * And kill everyone but me. --=20 2.29.2