From mboxrd@z Thu Jan 1 00:00:00 1970 Authentication-Results: passt.top; dmarc=pass (p=none dis=none) header.from=redhat.com Authentication-Results: passt.top; dkim=pass (1024-bit key; unprotected) header.d=redhat.com header.i=@redhat.com header.a=rsa-sha256 header.s=mimecast20190719 header.b=afkuEpMC; dkim-atps=neutral Received: from us-smtp-delivery-124.mimecast.com (us-smtp-delivery-124.mimecast.com [170.10.129.124]) by passt.top (Postfix) with ESMTPS id 3668C5A0272 for ; Wed, 05 Feb 2025 14:02:21 +0100 (CET) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=redhat.com; s=mimecast20190719; t=1738760540; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding: in-reply-to:in-reply-to:references:references; bh=K9XKV2mRTcsP8afG5qxauSFh4yYaj2ltv7D7gezJggg=; b=afkuEpMCiwcbK78tIv+d+O86EATn75+CqrR5q5qHWwNI1vckXImdnoax/gi8BJnUiRCmph bqCL9SUCfrXF9pxBAgfTCBl8v0zAbFO4LX/ZcUZeO7WzFtEeYb534W1FvLQquC3Y4dBgW1 JJz5GYdZnxNnRIhBc5zDWPOEP67sTXw= Received: from mx-prod-mc-01.mail-002.prod.us-west-2.aws.redhat.com (ec2-54-186-198-63.us-west-2.compute.amazonaws.com [54.186.198.63]) by relay.mimecast.com with ESMTP with STARTTLS (version=TLSv1.3, cipher=TLS_AES_256_GCM_SHA384) id us-mta-467-TqUTbV-QN66Kv8W2YD7AZg-1; Wed, 05 Feb 2025 08:02:18 -0500 X-MC-Unique: TqUTbV-QN66Kv8W2YD7AZg-1 X-Mimecast-MFC-AGG-ID: TqUTbV-QN66Kv8W2YD7AZg Received: from mx-prod-int-01.mail-002.prod.us-west-2.aws.redhat.com (mx-prod-int-01.mail-002.prod.us-west-2.aws.redhat.com [10.30.177.4]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (2048 bits) server-digest SHA256) (No client certificate requested) by mx-prod-mc-01.mail-002.prod.us-west-2.aws.redhat.com (Postfix) with ESMTPS id 386D91956054 for ; Wed, 5 Feb 2025 13:02:18 +0000 (UTC) Received: from pholzing-fedora.redhat.com (unknown [10.39.193.22]) by mx-prod-int-01.mail-002.prod.us-west-2.aws.redhat.com (Postfix) with ESMTP id 0B6FF3000197; Wed, 5 Feb 2025 13:02:16 +0000 (UTC) From: Paul Holzinger To: passt-dev@passt.top Subject: [PATCH 2/2] passt-repair: use _exit() over return Date: Wed, 5 Feb 2025 14:00:42 +0100 Message-ID: <20250205130041.47588-3-pholzing@redhat.com> In-Reply-To: <20250205130041.47588-2-pholzing@redhat.com> References: <20250205130041.47588-2-pholzing@redhat.com> MIME-Version: 1.0 X-Scanned-By: MIMEDefang 3.4.1 on 10.30.177.4 X-Mimecast-Spam-Score: 0 X-Mimecast-MFC-PROC-ID: vLond1U4ZXbYFN0U48zxaImzWmvDX5pWl4ZPxFRamIQ_1738760538 X-Mimecast-Originator: redhat.com Content-Transfer-Encoding: 8bit content-type: text/plain; charset="US-ASCII"; x-default=true Message-ID-Hash: QSJTVA6LDR3QK6XOXXTC5V6KUWMX6HLB X-Message-ID-Hash: QSJTVA6LDR3QK6XOXXTC5V6KUWMX6HLB X-MailFrom: pholzing@redhat.com X-Mailman-Rule-Misses: dmarc-mitigation; no-senders; approved; emergency; loop; banned-address; member-moderation; nonmember-moderation; administrivia; implicit-dest; max-recipients; max-size; news-moderation; no-subject; digests; suspicious-header CC: Paul Holzinger X-Mailman-Version: 3.3.8 Precedence: list List-Id: Development discussion and patches for passt Archived-At: Archived-At: List-Archive: List-Archive: List-Help: List-Owner: List-Post: List-Subscribe: List-Unsubscribe: When returning from main it does the same as calling exit() which is not good as glibc might try to call futex() which will be blocked by seccomp. See the prevoius commit "treewide: use _exit() over exit()" for a more detailed explanation. Signed-off-by: Paul Holzinger --- passt-repair.c | 24 ++++++++++++------------ 1 file changed, 12 insertions(+), 12 deletions(-) diff --git a/passt-repair.c b/passt-repair.c index dd8578f..6f79423 100644 --- a/passt-repair.c +++ b/passt-repair.c @@ -71,7 +71,7 @@ int main(int argc, char **argv) if (prctl(PR_SET_NO_NEW_PRIVS, 1, 0, 0, 0) || prctl(PR_SET_SECCOMP, SECCOMP_MODE_FILTER, &prog)) { fprintf(stderr, "Failed to apply seccomp filter"); - return 1; + _exit(1); } iov = (struct iovec){ &cmd, sizeof(cmd) }; @@ -80,42 +80,42 @@ int main(int argc, char **argv) if (argc != 2) { fprintf(stderr, "Usage: %s PATH\n", argv[0]); - return 2; + _exit(2); } ret = snprintf(a.sun_path, sizeof(a.sun_path), "%s", argv[1]); if (ret <= 0 || ret >= (int)sizeof(a.sun_path)) { fprintf(stderr, "Invalid socket path: %s\n", argv[1]); - return 2; + _exit(2); } if ((s = socket(AF_UNIX, SOCK_STREAM, 0)) < 0) { perror("Failed to create AF_UNIX socket"); - return 1; + _exit(1); } if (connect(s, (struct sockaddr *)&a, sizeof(a))) { fprintf(stderr, "Failed to connect to %s: %s\n", argv[1], strerror(errno)); - return 1; + _exit(1); } loop: ret = recvmsg(s, &msg, 0); if (ret < 0) { perror("Failed to receive message"); - return 1; + _exit(1); } if (!ret) /* Done */ - return 0; + _exit(0); if (!cmsg || cmsg->cmsg_len < CMSG_LEN(sizeof(int)) || cmsg->cmsg_len > CMSG_LEN(sizeof(int) * SCM_MAX_FD) || cmsg->cmsg_type != SCM_RIGHTS) { fprintf(stderr, "No/bad ancillary data from peer\n"); - return 1; + _exit(1); } n = cmsg->cmsg_len / CMSG_LEN(sizeof(int)); @@ -124,7 +124,7 @@ loop: if (cmd != TCP_REPAIR_ON && cmd != TCP_REPAIR_OFF && cmd != TCP_REPAIR_OFF_NO_WP) { fprintf(stderr, "Unsupported command 0x%04x\n", cmd); - return 1; + _exit(1); } for (i = 0; i < n; i++) { @@ -134,7 +134,7 @@ loop: fprintf(stderr, "Setting TCP_REPAIR to %i on socket %i: %s", o, fds[i], strerror(errno)); - return 1; + _exit(1); } /* Close _our_ copy */ @@ -144,11 +144,11 @@ loop: if (send(s, &cmd, sizeof(cmd), 0) < 0) { fprintf(stderr, "Reply to command %i: %s\n", o, strerror(errno)); - return 1; + _exit(1); } } goto loop; - return 0; + _exit(0); } -- 2.48.1