From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.4.4 (2020-01-24) on atuin.qyliss.net X-Spam-Level: X-Spam-Status: No, score=-4.5 required=3.0 tests=BAYES_00,DKIM_SIGNED, DKIM_VALID,DKIM_VALID_AU,HEADER_FROM_DIFFERENT_DOMAINS, MAILING_LIST_MULTI,RCVD_IN_DNSWL_LOW,RCVD_IN_MSPIKE_H3, RCVD_IN_MSPIKE_WL,SPF_HELO_PASS autolearn=unavailable autolearn_force=no version=3.4.4 Received: by atuin.qyliss.net (Postfix, from userid 496) id AE4E685E6; Fri, 19 Mar 2021 03:04:31 +0000 (UTC) Received: from [127.0.0.1] (localhost [IPv6:::1]) by atuin.qyliss.net (Postfix) with ESMTP id D88F285AE; Fri, 19 Mar 2021 03:04:18 +0000 (UTC) Received: by atuin.qyliss.net (Postfix, from userid 496) id 490A28523; Fri, 19 Mar 2021 03:04:17 +0000 (UTC) Received: from out3-smtp.messagingengine.com (out3-smtp.messagingengine.com [66.111.4.27]) by atuin.qyliss.net (Postfix) with ESMTPS id 287C6859D for ; Fri, 19 Mar 2021 03:04:15 +0000 (UTC) Received: from compute4.internal (compute4.nyi.internal [10.202.2.44]) by mailout.nyi.internal (Postfix) with ESMTP id 5328F5C018B for ; Thu, 18 Mar 2021 23:04:14 -0400 (EDT) Received: from mailfrontend1 ([10.202.2.162]) by compute4.internal (MEProxy); Thu, 18 Mar 2021 23:04:14 -0400 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=alyssa.is; h= from:to:subject:date:message-id:in-reply-to:references :mime-version:content-transfer-encoding; s=fm2; bh=muSh22LXuHiD/ KMUd4i8fIhj7oEF2pj9/LvmrAo6XiM=; b=eW5klmBNN2kJXE9zkYb64OanePRU3 9sce1gUBWpxoc7ViwZ0QW92KyEH/EVjQHWsZD2aWKRsKPVOZse52OZoqqFn5zhCj eDhJO2ZfIEORAwxdMbIn89tEC1jMaXw7LmmXCgeQyWBj/9/XwVNB0diYbIQmXUeD 2r9COBpRehfZfU6MtuI+8W7KGtGLZ15mzMqKawuhmA4LNC1yzELGXNSVd1UPUWOp M7y7vCxiYdqCU05ycnJVOANQeccw4dLpvGMGtzWt844vtvinDnpgNWLPJ2wgF2Zj HzpOw63CVA0TKZ3aW2Y9jP1ODAl+GzZTvzbNDpaiLp9/wtMbmxGXEIJ+w== DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d= messagingengine.com; h=content-transfer-encoding:date:from :in-reply-to:message-id:mime-version:references:subject:to :x-me-proxy:x-me-proxy:x-me-sender:x-me-sender:x-sasl-enc; s= fm2; bh=muSh22LXuHiD/KMUd4i8fIhj7oEF2pj9/LvmrAo6XiM=; b=g8kRDNYI ofI6m9j7w0UYjBBWY1RBm5iNeYcNnUqDRl3MXwYia2RA/CykoEoS7sveI/sVroZo eYBBiV6KoObdeuq6uxAoa7Y1uZMe9d0mMt9zstt7Cg9O0j942uqI7eP5/6nDMCgP gIDeA23OO1crHwviN2bUX+UM/MXfFZlN+t6zLK10Xp+0Lvz7KnwpuBYLxfWdy69r Oh/rWHiyYIt8MXssFzw3dBrslJzooDvu3xPgOqpLo9AsKbsA7OHAJFXypwpmEFDh Q8HUWjCB1irzSD2vSv57O+lPB6gx4Y4RND7MgjpBMBg/8ai99M34pp+/eo7VmEKf VOTLGvl9b4NFbQ== X-ME-Sender: X-ME-Proxy-Cause: gggruggvucftvghtrhhoucdtuddrgeduledrudefjedghedvucetufdoteggodetrfdotf fvucfrrhhofhhilhgvmecuhfgrshhtofgrihhlpdfqfgfvpdfurfetoffkrfgpnffqhgen uceurghilhhouhhtmecufedttdenucgogfeguddtqddvjeculdegtddmnecujfgurhephf fvufffkffojghfggfgsedtkeertdertddtnecuhfhrohhmpeetlhihshhsrgcutfhoshhs uceohhhisegrlhihshhsrgdrihhsqeenucggtffrrghtthgvrhhnpefgfedukedvleeile eludefveehgeelgfegvddujedvtdffueeuveffheeljeekvdenucfkphepkeegrddukeeg rddvfedvrddukedtnecuvehluhhsthgvrhfuihiivgepvdenucfrrghrrghmpehmrghilh hfrhhomhepqhihlhhishhsseigvddvtddrqhihlhhishhsrdhnvght X-ME-Proxy: Received: from x220.qyliss.net (p54b8e8b4.dip0.t-ipconnect.de [84.184.232.180]) by mail.messagingengine.com (Postfix) with ESMTPA id C2BCF24005B for ; Thu, 18 Mar 2021 23:04:13 -0400 (EDT) Received: by x220.qyliss.net (Postfix, from userid 1000) id 967551F8B; Fri, 19 Mar 2021 03:04:12 +0000 (UTC) From: Alyssa Ross To: devel@spectrum-os.org Subject: [PATCH ucspi-vsock 6/7] exec: add execzp() Date: Fri, 19 Mar 2021 02:56:53 +0000 Message-Id: <20210319025648.17925-6-hi@alyssa.is> X-Mailer: git-send-email 2.30.0 In-Reply-To: <20210319025349.8839-2-hi@alyssa.is> References: <20210319025349.8839-2-hi@alyssa.is> MIME-Version: 1.0 Content-Transfer-Encoding: 8bit Message-ID-Hash: TVENKVXGOCQEPW52O3NSWSLB2EWNNHPI X-Message-ID-Hash: TVENKVXGOCQEPW52O3NSWSLB2EWNNHPI X-MailFrom: qyliss@x220.qyliss.net X-Mailman-Rule-Misses: dmarc-mitigation; no-senders; approved; emergency; loop; banned-address; member-moderation; header-match-config-1; nonmember-moderation; administrivia; implicit-dest; max-recipients; max-size; news-moderation; no-subject; suspicious-header X-Mailman-Version: 3.3.1 Precedence: list List-Id: Patches and low-level development discussion Archived-At: List-Archive: List-Help: List-Post: List-Subscribe: List-Unsubscribe: --- This will be used by the new version of vsockserver, which will use an argz vector to build up the command line it will exec into. exec.c | 22 ++++++++++++++++++++++ exec.h | 7 +++++++ 2 files changed, 29 insertions(+) create mode 100644 exec.c create mode 100644 exec.h diff --git a/exec.c b/exec.c new file mode 100644 index 0000000..cc55200 --- /dev/null +++ b/exec.c @@ -0,0 +1,22 @@ +// SPDX-License-Identifier: GPL-2.0-or-later +// SPDX-FileCopyrightText: 2021 Alyssa Ross + +#define _GNU_SOURCE + +#include +#include +#include + +#include "exec.h" + +// Like execvp, but takes an argz vector instead of an argv array. +int execzp(const char *file, const char *argz, size_t len) +{ + char **argv = calloc(argz_count(argz, len) + 1, sizeof(char *)); + if (!argv) + return -1; + + argz_extract(argz, len, argv); + + return execvp(file, argv); +} diff --git a/exec.h b/exec.h new file mode 100644 index 0000000..261e113 --- /dev/null +++ b/exec.h @@ -0,0 +1,7 @@ +// SPDX-License-Identifier: GPL-2.0-or-later +// SPDX-FileCopyrightText: 2021 Alyssa Ross + +#include + +// Like execvp, but takes an argz vector instead of an argv array. +int execzp(const char *file, const char *argz, size_t len); -- 2.30.0