From nobody Fri May 17 05:50:22 2024 Delivered-To: importer@patchew.org Authentication-Results: mx.zohomail.com; dkim=fail; spf=pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) smtp.mailfrom=qemu-devel-bounces+importer=patchew.org@nongnu.org; dmarc=fail(p=none dis=none) header.from=redhat.com ARC-Seal: i=1; a=rsa-sha256; t=1604412282; cv=none; d=zohomail.com; s=zohoarc; b=f0scP0S4+zjizEaODdOBf8xqESy4oghLPsSe4S/uMXQ6K0t1CBQ6t54bWQekKdjMMWvDffFEpakYjcQkz+i1SJd3NbFO6OnQcly//MxCk9TFxA1KOA6pJ6xndn3Nvz01ctLJMVpapZGTNjnfCkf1tp+jIPd1UxoUZUB77nN7gpE= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1604412282; h=Content-Type:Content-Transfer-Encoding:Cc:Date:From:In-Reply-To:List-Subscribe:List-Post:List-Id:List-Archive:List-Help:List-Unsubscribe:MIME-Version:Message-ID:References:Sender:Subject:To; bh=4ZQmbq0xB5DnH58qbXfj6utbb/hVdwsAPsSGEx2W6Gs=; b=iAenX1k3+P+ty2Et5xPaCOc9qhQ5yYk1jydq8U6u+VFxFimJuDAzJeFjZPB/S7zAxCa4QExudwW5vZoKAvdVfpuIJ5+rgBKKj3GqSt156jAGxTnl/qvytfyNAXUlBAdXQuSuoG3dAcX+wAY+98MhV+WUF3/4eU9qEpG9QylXeaw= ARC-Authentication-Results: i=1; mx.zohomail.com; dkim=fail; spf=pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) smtp.mailfrom=qemu-devel-bounces+importer=patchew.org@nongnu.org; dmarc=fail header.from= (p=none dis=none) header.from= Return-Path: Received: from lists.gnu.org (lists.gnu.org [209.51.188.17]) by mx.zohomail.com with SMTPS id 1604412282444247.05255597304722; Tue, 3 Nov 2020 06:04:42 -0800 (PST) Received: from localhost ([::1]:60988 helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1kZwvQ-0008JW-FM for importer@patchew.org; Tue, 03 Nov 2020 09:04:40 -0500 Received: from eggs.gnu.org ([2001:470:142:3::10]:49128) by lists.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1kZwte-0006c2-3q for qemu-devel@nongnu.org; Tue, 03 Nov 2020 09:02:50 -0500 Received: from us-smtp-delivery-124.mimecast.com ([63.128.21.124]:21873) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_CBC_SHA1:256) (Exim 4.90_1) (envelope-from ) id 1kZwtY-0003IC-Jh for qemu-devel@nongnu.org; Tue, 03 Nov 2020 09:02:49 -0500 Received: from mimecast-mx01.redhat.com (mimecast-mx01.redhat.com [209.132.183.4]) (Using TLS) by relay.mimecast.com with ESMTP id us-mta-212-phQo3XqLOly3gM157Oiy4Q-1; Tue, 03 Nov 2020 09:02:41 -0500 Received: from smtp.corp.redhat.com (int-mx01.intmail.prod.int.phx2.redhat.com [10.5.11.11]) (using TLSv1.2 with cipher AECDH-AES256-SHA (256/256 bits)) (No client certificate requested) by mimecast-mx01.redhat.com (Postfix) with ESMTPS id 46C078058C7 for ; Tue, 3 Nov 2020 14:02:40 +0000 (UTC) Received: from fedora.redhat.com (ovpn-115-87.ams2.redhat.com [10.36.115.87]) by smtp.corp.redhat.com (Postfix) with ESMTP id 411B276640; Tue, 3 Nov 2020 14:02:37 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=redhat.com; s=mimecast20190719; t=1604412162; 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=4ZQmbq0xB5DnH58qbXfj6utbb/hVdwsAPsSGEx2W6Gs=; b=U/I4ZU94BxmvJvESKZFWvD6ULV9PpQAoxs2kvNi+NyWAnnNd6fShY5xCDiCU6zh3Jdpd/3 +6eueg3SFq90wlU7ouYNUkyEsC9eUtVulDdbZxVmDpGYb49hi+PUKrvx8OOMC/6f8ho18w AzpGDnnW4ee5bw2ZuBYU1wm2pCFDKWs= X-MC-Unique: phQo3XqLOly3gM157Oiy4Q-1 From: =?UTF-8?q?Daniel=20P=2E=20Berrang=C3=A9?= To: qemu-devel@nongnu.org Subject: [PULL 01/11] test-util-sockets: Plug file descriptor leak Date: Tue, 3 Nov 2020 14:02:15 +0000 Message-Id: <20201103140225.496776-2-berrange@redhat.com> In-Reply-To: <20201103140225.496776-1-berrange@redhat.com> References: <20201103140225.496776-1-berrange@redhat.com> MIME-Version: 1.0 X-Scanned-By: MIMEDefang 2.79 on 10.5.11.11 Authentication-Results: relay.mimecast.com; auth=pass smtp.auth=CUSA124A263 smtp.mailfrom=berrange@redhat.com X-Mimecast-Spam-Score: 0 X-Mimecast-Originator: redhat.com Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: quoted-printable Received-SPF: pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) client-ip=209.51.188.17; envelope-from=qemu-devel-bounces+importer=patchew.org@nongnu.org; helo=lists.gnu.org; Received-SPF: pass client-ip=63.128.21.124; envelope-from=berrange@redhat.com; helo=us-smtp-delivery-124.mimecast.com X-detected-operating-system: by eggs.gnu.org: First seen = 2020/11/03 01:02:05 X-ACL-Warn: Detected OS = Linux 2.2.x-3.x [generic] [fuzzy] X-Spam_score_int: -20 X-Spam_score: -2.1 X-Spam_bar: -- X-Spam_report: (-2.1 / 5.0 requ) BAYES_00=-1.9, DKIMWL_WL_HIGH=-0.001, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, DKIM_VALID_EF=-0.1, RCVD_IN_DNSWL_NONE=-0.0001, RCVD_IN_MSPIKE_H5=0.001, RCVD_IN_MSPIKE_WL=0.001, SPF_HELO_NONE=0.001, SPF_PASS=-0.001 autolearn=ham autolearn_force=no X-Spam_action: no action X-BeenThere: qemu-devel@nongnu.org X-Mailman-Version: 2.1.23 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Cc: =?UTF-8?q?Daniel=20P=2E=20Berrang=C3=A9?= , =?UTF-8?q?Philippe=20Mathieu-Daud=C3=A9?= , Markus Armbruster , Gerd Hoffmann , =?UTF-8?q?Marc-Andr=C3=A9=20Lureau?= , Paolo Bonzini Errors-To: qemu-devel-bounces+importer=patchew.org@nongnu.org Sender: "Qemu-devel" X-ZohoMail-DKIM: fail (Header signature does not verify) From: Markus Armbruster Fixes: 4d3a329af59ef8acd076f99f05e82531d8129b34 Reviewed-by: Philippe Mathieu-Daud=C3=A9 Reviewed-by: Paolo Bonzini Reviewed-by: Eric Blake Signed-off-by: Markus Armbruster Signed-off-by: Daniel P. Berrang=C3=A9 --- tests/test-util-sockets.c | 1 + 1 file changed, 1 insertion(+) diff --git a/tests/test-util-sockets.c b/tests/test-util-sockets.c index f6336e0f91..15da867b8f 100644 --- a/tests/test-util-sockets.c +++ b/tests/test-util-sockets.c @@ -252,6 +252,7 @@ static gpointer unix_server_thread_func(gpointer user_d= ata) =20 connfd =3D accept(fd, (struct sockaddr *)&un, &len); g_assert_cmpint(connfd, !=3D, -1); + close(connfd); =20 close(fd); =20 --=20 2.28.0 From nobody Fri May 17 05:50:22 2024 Delivered-To: importer@patchew.org Authentication-Results: mx.zohomail.com; dkim=fail; spf=pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) smtp.mailfrom=qemu-devel-bounces+importer=patchew.org@nongnu.org; dmarc=fail(p=none dis=none) header.from=redhat.com ARC-Seal: i=1; a=rsa-sha256; t=1604412499; cv=none; d=zohomail.com; s=zohoarc; b=Jd0sxovujIo9BOT9HQIbVqc4J7sLWaHwBPRlLiXIhII09H7ioabnvMBq4iIvqnlOHdRSiE4DtpBLkhB/cMt5tsNvOH89Y28JOyznZbTaVoV2vsvo9XvosYNwC7fiefkzMPdv1KCxVkC8yz+HWJfjyrxQX2bWMok5S2nz7M8a3GY= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1604412499; h=Content-Type:Content-Transfer-Encoding:Cc:Date:From:In-Reply-To:List-Subscribe:List-Post:List-Id:List-Archive:List-Help:List-Unsubscribe:MIME-Version:Message-ID:References:Sender:Subject:To; bh=PfX9tvD80HpcY4mvycJt2UiFX8KtV4zGgMmbbxTCLyI=; b=kSDYLfjNhg6GSs6Jl/iHaofM88aRcTJzRh/tvF+RkzKb2vNuVSZU8rmUfMGAddcOmkPWoEV/9BN8qNtDP+hCey9UzxcplDv567rEV73cE/hw+t2jC+OKv4VTe0OW0Sw69FAG9NTNbAaKTreDZ7JMfz5NmuJCq14BMznNjgNHsgU= ARC-Authentication-Results: i=1; mx.zohomail.com; dkim=fail; spf=pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) smtp.mailfrom=qemu-devel-bounces+importer=patchew.org@nongnu.org; dmarc=fail header.from= (p=none dis=none) header.from= Return-Path: Received: from lists.gnu.org (lists.gnu.org [209.51.188.17]) by mx.zohomail.com with SMTPS id 1604412499980505.0125867233302; Tue, 3 Nov 2020 06:08:19 -0800 (PST) Received: from localhost ([::1]:40386 helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1kZwyw-0003Bb-V8 for importer@patchew.org; Tue, 03 Nov 2020 09:08:18 -0500 Received: from eggs.gnu.org ([2001:470:142:3::10]:49114) by lists.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1kZwtc-0006a6-DO for qemu-devel@nongnu.org; Tue, 03 Nov 2020 09:02:48 -0500 Received: from us-smtp-delivery-124.mimecast.com ([63.128.21.124]:25912) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_CBC_SHA1:256) (Exim 4.90_1) (envelope-from ) id 1kZwta-0003IN-KU for qemu-devel@nongnu.org; Tue, 03 Nov 2020 09:02:48 -0500 Received: from mimecast-mx01.redhat.com (mimecast-mx01.redhat.com [209.132.183.4]) (Using TLS) by relay.mimecast.com with ESMTP id us-mta-268-aw9xCa-yPzaPUARhCP38Ew-1; Tue, 03 Nov 2020 09:02:43 -0500 Received: from smtp.corp.redhat.com (int-mx01.intmail.prod.int.phx2.redhat.com [10.5.11.11]) (using TLSv1.2 with cipher AECDH-AES256-SHA (256/256 bits)) (No client certificate requested) by mimecast-mx01.redhat.com (Postfix) with ESMTPS id A928B186DD2A for ; Tue, 3 Nov 2020 14:02:42 +0000 (UTC) Received: from fedora.redhat.com (ovpn-115-87.ams2.redhat.com [10.36.115.87]) by smtp.corp.redhat.com (Postfix) with ESMTP id 9C3956F142; Tue, 3 Nov 2020 14:02:40 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=redhat.com; s=mimecast20190719; t=1604412165; 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=PfX9tvD80HpcY4mvycJt2UiFX8KtV4zGgMmbbxTCLyI=; b=MrHSPIueybBbNmS3eOE9NOFBiHeZjelVaX+z80Ymh9n9vshgTN9nInwvEMDgJntAlz4f1H Cjftq3yxzumIdaXV7Z8rcOTsIXEJge8GXTK8TfcQPyFsrV9wA7MHt6X+lecjR2RCdcKXo7 uv4R1PZKnukVsEYrNu5+iTcGpmOnkcg= X-MC-Unique: aw9xCa-yPzaPUARhCP38Ew-1 From: =?UTF-8?q?Daniel=20P=2E=20Berrang=C3=A9?= To: qemu-devel@nongnu.org Subject: [PULL 02/11] test-util-sockets: Correct to set has_abstract, has_tight Date: Tue, 3 Nov 2020 14:02:16 +0000 Message-Id: <20201103140225.496776-3-berrange@redhat.com> In-Reply-To: <20201103140225.496776-1-berrange@redhat.com> References: <20201103140225.496776-1-berrange@redhat.com> MIME-Version: 1.0 X-Scanned-By: MIMEDefang 2.79 on 10.5.11.11 Authentication-Results: relay.mimecast.com; auth=pass smtp.auth=CUSA124A263 smtp.mailfrom=berrange@redhat.com X-Mimecast-Spam-Score: 0 X-Mimecast-Originator: redhat.com Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: quoted-printable Received-SPF: pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) client-ip=209.51.188.17; envelope-from=qemu-devel-bounces+importer=patchew.org@nongnu.org; helo=lists.gnu.org; Received-SPF: pass client-ip=63.128.21.124; envelope-from=berrange@redhat.com; helo=us-smtp-delivery-124.mimecast.com X-detected-operating-system: by eggs.gnu.org: First seen = 2020/11/03 01:02:05 X-ACL-Warn: Detected OS = Linux 2.2.x-3.x [generic] [fuzzy] X-Spam_score_int: -20 X-Spam_score: -2.1 X-Spam_bar: -- X-Spam_report: (-2.1 / 5.0 requ) BAYES_00=-1.9, DKIMWL_WL_HIGH=-0.001, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, DKIM_VALID_EF=-0.1, RCVD_IN_DNSWL_NONE=-0.0001, RCVD_IN_MSPIKE_H5=0.001, RCVD_IN_MSPIKE_WL=0.001, SPF_HELO_NONE=0.001, SPF_PASS=-0.001 autolearn=ham autolearn_force=no X-Spam_action: no action X-BeenThere: qemu-devel@nongnu.org X-Mailman-Version: 2.1.23 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Cc: =?UTF-8?q?Daniel=20P=2E=20Berrang=C3=A9?= , Markus Armbruster , Gerd Hoffmann , =?UTF-8?q?Marc-Andr=C3=A9=20Lureau?= , Paolo Bonzini Errors-To: qemu-devel-bounces+importer=patchew.org@nongnu.org Sender: "Qemu-devel" X-ZohoMail-DKIM: fail (Header signature does not verify) From: Markus Armbruster The code tested doesn't care, which is a bug I will fix shortly. Reviewed-by: Paolo Bonzini Reviewed-by: Eric Blake Signed-off-by: Markus Armbruster Signed-off-by: Daniel P. Berrang=C3=A9 --- tests/test-util-sockets.c | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/tests/test-util-sockets.c b/tests/test-util-sockets.c index 15da867b8f..9d317e73a6 100644 --- a/tests/test-util-sockets.c +++ b/tests/test-util-sockets.c @@ -243,7 +243,9 @@ static gpointer unix_server_thread_func(gpointer user_d= ata) =20 addr.type =3D SOCKET_ADDRESS_TYPE_UNIX; addr.u.q_unix.path =3D abstract_sock_name; + addr.u.q_unix.has_tight =3D true; addr.u.q_unix.tight =3D user_data !=3D NULL; + addr.u.q_unix.has_abstract =3D true; addr.u.q_unix.abstract =3D true; =20 fd =3D socket_listen(&addr, 1, &err); @@ -267,7 +269,9 @@ static gpointer unix_client_thread_func(gpointer user_d= ata) =20 addr.type =3D SOCKET_ADDRESS_TYPE_UNIX; addr.u.q_unix.path =3D abstract_sock_name; + addr.u.q_unix.has_tight =3D true; addr.u.q_unix.tight =3D user_data !=3D NULL; + addr.u.q_unix.has_abstract =3D true; addr.u.q_unix.abstract =3D true; =20 fd =3D socket_connect(&addr, &err); --=20 2.28.0 From nobody Fri May 17 05:50:22 2024 Delivered-To: importer@patchew.org Authentication-Results: mx.zohomail.com; dkim=fail; spf=pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) smtp.mailfrom=qemu-devel-bounces+importer=patchew.org@nongnu.org; dmarc=fail(p=none dis=none) header.from=redhat.com ARC-Seal: i=1; a=rsa-sha256; t=1604412283; cv=none; d=zohomail.com; s=zohoarc; b=Y0obvjzEgIGxYey7RlYTDBk+5MGc/l8DFJD63MbT5mBjiFJyqDVBxAsKpYdM2uJpvKMhx0atcidHo52+8BC3nThVlohmc5P/pPC5Gj1hOP2AfVxGLJK+ALK9ZAFYaOyiihVpequiyFmKJQpVkWnICTSyBtoopiJfZNgxO1b2y/s= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1604412283; h=Content-Type:Content-Transfer-Encoding:Cc:Date:From:In-Reply-To:List-Subscribe:List-Post:List-Id:List-Archive:List-Help:List-Unsubscribe:MIME-Version:Message-ID:References:Sender:Subject:To; bh=6OAWpeNJOTmFeutAt/IAKX1bcweNNiyWJXLlAbyUjjw=; b=BjMWYJMmig418hKiArdfbP+4yeUcXsi0gY84bd2cMGxvT76uXaImoI6T62SwNpaatuC6Id6b+GjWr9B4idyJmdg5RH7icv8f2V7sJW5V4JuhHEdwyqoIQB5R8iUnPl3sJMqqENIExLPezgUyHECByWOu5tu55sTzGMRbBKKjv0M= ARC-Authentication-Results: i=1; mx.zohomail.com; dkim=fail; spf=pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) smtp.mailfrom=qemu-devel-bounces+importer=patchew.org@nongnu.org; dmarc=fail header.from= (p=none dis=none) header.from= Return-Path: Received: from lists.gnu.org (lists.gnu.org [209.51.188.17]) by mx.zohomail.com with SMTPS id 1604412283938324.0684543567113; Tue, 3 Nov 2020 06:04:43 -0800 (PST) Received: from localhost ([::1]:32812 helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1kZwvR-0008Ko-KE for importer@patchew.org; Tue, 03 Nov 2020 09:04:41 -0500 Received: from eggs.gnu.org ([2001:470:142:3::10]:49130) by lists.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1kZwte-0006cg-Nm for qemu-devel@nongnu.org; Tue, 03 Nov 2020 09:02:50 -0500 Received: from us-smtp-delivery-124.mimecast.com ([63.128.21.124]:59025) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_CBC_SHA1:256) (Exim 4.90_1) (envelope-from ) id 1kZwtc-0003JF-NR for qemu-devel@nongnu.org; Tue, 03 Nov 2020 09:02:50 -0500 Received: from mimecast-mx01.redhat.com (mimecast-mx01.redhat.com [209.132.183.4]) (Using TLS) by relay.mimecast.com with ESMTP id us-mta-472-7-3bmHm7Nwekw6KHr-dHxg-1; Tue, 03 Nov 2020 09:02:45 -0500 Received: from smtp.corp.redhat.com (int-mx01.intmail.prod.int.phx2.redhat.com [10.5.11.11]) (using TLSv1.2 with cipher AECDH-AES256-SHA (256/256 bits)) (No client certificate requested) by mimecast-mx01.redhat.com (Postfix) with ESMTPS id 014E9186DD21 for ; Tue, 3 Nov 2020 14:02:45 +0000 (UTC) Received: from fedora.redhat.com (ovpn-115-87.ams2.redhat.com [10.36.115.87]) by smtp.corp.redhat.com (Postfix) with ESMTP id 12BA55B4D9; Tue, 3 Nov 2020 14:02:42 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=redhat.com; s=mimecast20190719; t=1604412167; 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=6OAWpeNJOTmFeutAt/IAKX1bcweNNiyWJXLlAbyUjjw=; b=Mm67grlDUoajg952sb4KkooruOCwN5O0/hIXSLoc+9tsGO+ppnpt6EV9vyrnUVgFFrJl42 PlEzfghNIUncAi4cC2MfTgGqpVEafc6mY5+6rgvbmyAqcbR4778GmFdSAHcwJJOIclxT3o auPCJC0McFgSb/wlzAr+zMhUqglzjB8= X-MC-Unique: 7-3bmHm7Nwekw6KHr-dHxg-1 From: =?UTF-8?q?Daniel=20P=2E=20Berrang=C3=A9?= To: qemu-devel@nongnu.org Subject: [PULL 03/11] test-util-sockets: Clean up SocketAddress construction Date: Tue, 3 Nov 2020 14:02:17 +0000 Message-Id: <20201103140225.496776-4-berrange@redhat.com> In-Reply-To: <20201103140225.496776-1-berrange@redhat.com> References: <20201103140225.496776-1-berrange@redhat.com> MIME-Version: 1.0 X-Scanned-By: MIMEDefang 2.79 on 10.5.11.11 Authentication-Results: relay.mimecast.com; auth=pass smtp.auth=CUSA124A263 smtp.mailfrom=berrange@redhat.com X-Mimecast-Spam-Score: 0 X-Mimecast-Originator: redhat.com Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: quoted-printable Received-SPF: pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) client-ip=209.51.188.17; envelope-from=qemu-devel-bounces+importer=patchew.org@nongnu.org; helo=lists.gnu.org; Received-SPF: pass client-ip=63.128.21.124; envelope-from=berrange@redhat.com; helo=us-smtp-delivery-124.mimecast.com X-detected-operating-system: by eggs.gnu.org: First seen = 2020/11/03 01:02:05 X-ACL-Warn: Detected OS = Linux 2.2.x-3.x [generic] [fuzzy] X-Spam_score_int: -20 X-Spam_score: -2.1 X-Spam_bar: -- X-Spam_report: (-2.1 / 5.0 requ) BAYES_00=-1.9, DKIMWL_WL_HIGH=-0.001, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, DKIM_VALID_EF=-0.1, RCVD_IN_DNSWL_NONE=-0.0001, RCVD_IN_MSPIKE_H5=0.001, RCVD_IN_MSPIKE_WL=0.001, SPF_HELO_NONE=0.001, SPF_PASS=-0.001 autolearn=ham autolearn_force=no X-Spam_action: no action X-BeenThere: qemu-devel@nongnu.org X-Mailman-Version: 2.1.23 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Cc: =?UTF-8?q?Daniel=20P=2E=20Berrang=C3=A9?= , Markus Armbruster , Gerd Hoffmann , =?UTF-8?q?Marc-Andr=C3=A9=20Lureau?= , Paolo Bonzini Errors-To: qemu-devel-bounces+importer=patchew.org@nongnu.org Sender: "Qemu-devel" X-ZohoMail-DKIM: fail (Header signature does not verify) From: Markus Armbruster The thread functions build the SocketAddress from global variable @abstract_sock_name and the tight flag passed as pointer argument (either NULL or (gpointer)1). There is no need for such hackery; simply pass the SocketAddress instead. While there, dumb down g_rand_int_range() to g_random_int(). Reviewed-by: Paolo Bonzini Reviewed-by: Eric Blake Signed-off-by: Markus Armbruster Signed-off-by: Daniel P. Berrang=C3=A9 --- tests/test-util-sockets.c | 64 ++++++++++++++++----------------------- 1 file changed, 26 insertions(+), 38 deletions(-) diff --git a/tests/test-util-sockets.c b/tests/test-util-sockets.c index 9d317e73a6..a4792253ba 100644 --- a/tests/test-util-sockets.c +++ b/tests/test-util-sockets.c @@ -230,25 +230,15 @@ static void test_socket_fd_pass_num_nocli(void) #endif =20 #ifdef __linux__ -static gchar *abstract_sock_name; - static gpointer unix_server_thread_func(gpointer user_data) { - SocketAddress addr; - Error *err =3D NULL; - int fd =3D -1; - int connfd =3D -1; + SocketAddress *addr =3D user_data; + int fd; + int connfd; struct sockaddr_un un; socklen_t len =3D sizeof(un); =20 - addr.type =3D SOCKET_ADDRESS_TYPE_UNIX; - addr.u.q_unix.path =3D abstract_sock_name; - addr.u.q_unix.has_tight =3D true; - addr.u.q_unix.tight =3D user_data !=3D NULL; - addr.u.q_unix.has_abstract =3D true; - addr.u.q_unix.abstract =3D true; - - fd =3D socket_listen(&addr, 1, &err); + fd =3D socket_listen(addr, 1, &error_abort); g_assert_cmpint(fd, >=3D, 0); g_assert(fd_is_socket(fd)); =20 @@ -257,69 +247,67 @@ static gpointer unix_server_thread_func(gpointer user= _data) close(connfd); =20 close(fd); - return NULL; } =20 static gpointer unix_client_thread_func(gpointer user_data) { - SocketAddress addr; - Error *err =3D NULL; - int fd =3D -1; - - addr.type =3D SOCKET_ADDRESS_TYPE_UNIX; - addr.u.q_unix.path =3D abstract_sock_name; - addr.u.q_unix.has_tight =3D true; - addr.u.q_unix.tight =3D user_data !=3D NULL; - addr.u.q_unix.has_abstract =3D true; - addr.u.q_unix.abstract =3D true; - - fd =3D socket_connect(&addr, &err); + SocketAddress *addr =3D user_data; + int fd; =20 + fd =3D socket_connect(addr, &error_abort); g_assert_cmpint(fd, >=3D, 0); - close(fd); - return NULL; } =20 static void test_socket_unix_abstract_good(void) { - GRand *r =3D g_rand_new(); + SocketAddress addr; =20 - abstract_sock_name =3D g_strdup_printf("unix-%d-%d", getpid(), - g_rand_int_range(r, 100, 1000)); + addr.type =3D SOCKET_ADDRESS_TYPE_UNIX; + addr.u.q_unix.path =3D g_strdup_printf("unix-%d-%u", + getpid(), g_random_int()); + addr.u.q_unix.has_abstract =3D true; + addr.u.q_unix.abstract =3D true; =20 /* non tight socklen serv and cli */ + + addr.u.q_unix.has_tight =3D false; + addr.u.q_unix.tight =3D false; + GThread *serv =3D g_thread_new("abstract_unix_server", unix_server_thread_func, - NULL); + &addr); =20 sleep(1); =20 GThread *cli =3D g_thread_new("abstract_unix_client", unix_client_thread_func, - NULL); + &addr); =20 g_thread_join(cli); g_thread_join(serv); =20 /* tight socklen serv and cli */ + + addr.u.q_unix.has_tight =3D true; + addr.u.q_unix.tight =3D true; + serv =3D g_thread_new("abstract_unix_server", unix_server_thread_func, - (gpointer)1); + &addr); =20 sleep(1); =20 cli =3D g_thread_new("abstract_unix_client", unix_client_thread_func, - (gpointer)1); + &addr); =20 g_thread_join(cli); g_thread_join(serv); =20 - g_free(abstract_sock_name); - g_rand_free(r); + g_free(addr.u.q_unix.path); } #endif =20 --=20 2.28.0 From nobody Fri May 17 05:50:22 2024 Delivered-To: importer@patchew.org Authentication-Results: mx.zohomail.com; dkim=fail; spf=pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) smtp.mailfrom=qemu-devel-bounces+importer=patchew.org@nongnu.org; dmarc=fail(p=none dis=none) header.from=redhat.com ARC-Seal: i=1; a=rsa-sha256; t=1604412624; cv=none; d=zohomail.com; s=zohoarc; b=Rr0WVu8vmU/PTofha2SZ16rMGxzYeG/9ZDBHPL051NFcDJLCCBJUzNvx9pKFlb8Pvko0ZJ+r894ICoDxN2//H5EKwx+E42/kvnhyY4VpenXEoC3TxoOcElV65lGvtyoy9XPUBa/bBZIQt2a6b6ap8+p8mkBxEPGRUUWjAnFUnos= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1604412624; h=Content-Type:Content-Transfer-Encoding:Cc:Date:From:In-Reply-To:List-Subscribe:List-Post:List-Id:List-Archive:List-Help:List-Unsubscribe:MIME-Version:Message-ID:References:Sender:Subject:To; bh=f2timKX3kYoLzqTmK3/PTTSCfa+DsK9FvWxwyfITMiA=; b=LdbQhKYrIHI8lUwMLA+8UBfP1Z1S+bhlEhzY+sAKDGxwmq0EwG3g2cAA4QT0I8ZPCn8/K239n2AIK6oam76abk5pdAK8i5FW/zrONp6Tmz/D0AsZ/lZdocBZGdY+tjC4rd2c0FmD5DJQSLWkGCJ/zJw/GNpcc/nPZYegyduAuTI= ARC-Authentication-Results: i=1; mx.zohomail.com; dkim=fail; spf=pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) smtp.mailfrom=qemu-devel-bounces+importer=patchew.org@nongnu.org; dmarc=fail header.from= (p=none dis=none) header.from= Return-Path: Received: from lists.gnu.org (lists.gnu.org [209.51.188.17]) by mx.zohomail.com with SMTPS id 16044126244794.031214594594189; Tue, 3 Nov 2020 06:10:24 -0800 (PST) Received: from localhost ([::1]:48868 helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1kZx0x-0006iH-5P for importer@patchew.org; Tue, 03 Nov 2020 09:10:23 -0500 Received: from eggs.gnu.org ([2001:470:142:3::10]:49150) by lists.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1kZwtk-0006mH-SP for qemu-devel@nongnu.org; Tue, 03 Nov 2020 09:02:57 -0500 Received: from us-smtp-delivery-124.mimecast.com ([216.205.24.124]:43578) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_CBC_SHA1:256) (Exim 4.90_1) (envelope-from ) id 1kZwte-0003KT-O7 for qemu-devel@nongnu.org; Tue, 03 Nov 2020 09:02:56 -0500 Received: from mimecast-mx01.redhat.com (mimecast-mx01.redhat.com [209.132.183.4]) (Using TLS) by relay.mimecast.com with ESMTP id us-mta-447-3jCnUYG0Oi619MXKBtAqTw-1; Tue, 03 Nov 2020 09:02:48 -0500 Received: from smtp.corp.redhat.com (int-mx01.intmail.prod.int.phx2.redhat.com [10.5.11.11]) (using TLSv1.2 with cipher AECDH-AES256-SHA (256/256 bits)) (No client certificate requested) by mimecast-mx01.redhat.com (Postfix) with ESMTPS id 48BDC1009E25 for ; Tue, 3 Nov 2020 14:02:47 +0000 (UTC) Received: from fedora.redhat.com (ovpn-115-87.ams2.redhat.com [10.36.115.87]) by smtp.corp.redhat.com (Postfix) with ESMTP id 688915B4D6; Tue, 3 Nov 2020 14:02:45 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=redhat.com; s=mimecast20190719; t=1604412169; 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=f2timKX3kYoLzqTmK3/PTTSCfa+DsK9FvWxwyfITMiA=; b=fdUc5uDnDrPU7BeB2W2vSEVmltDgb8doqSgdC6XzdfguWfWwmyCKJ2EfPPVmZQMt23qqly WjEp13PX8cazsrh5hQATtvF09N4keFRfAWZsqwdmZvChTQxMG+MLJ9J06kjWhzdGV5p3o9 QmB0OP+q8RzCweOyEJsa76n9OYURF0Q= X-MC-Unique: 3jCnUYG0Oi619MXKBtAqTw-1 From: =?UTF-8?q?Daniel=20P=2E=20Berrang=C3=A9?= To: qemu-devel@nongnu.org Subject: [PULL 04/11] test-util-sockets: Factor out test_socket_unix_abstract_one() Date: Tue, 3 Nov 2020 14:02:18 +0000 Message-Id: <20201103140225.496776-5-berrange@redhat.com> In-Reply-To: <20201103140225.496776-1-berrange@redhat.com> References: <20201103140225.496776-1-berrange@redhat.com> MIME-Version: 1.0 X-Scanned-By: MIMEDefang 2.79 on 10.5.11.11 Authentication-Results: relay.mimecast.com; auth=pass smtp.auth=CUSA124A263 smtp.mailfrom=berrange@redhat.com X-Mimecast-Spam-Score: 0 X-Mimecast-Originator: redhat.com Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: quoted-printable Received-SPF: pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) client-ip=209.51.188.17; envelope-from=qemu-devel-bounces+importer=patchew.org@nongnu.org; helo=lists.gnu.org; Received-SPF: pass client-ip=216.205.24.124; envelope-from=berrange@redhat.com; helo=us-smtp-delivery-124.mimecast.com X-detected-operating-system: by eggs.gnu.org: First seen = 2020/11/03 00:03:41 X-ACL-Warn: Detected OS = Linux 2.2.x-3.x [generic] [fuzzy] X-Spam_score_int: -20 X-Spam_score: -2.1 X-Spam_bar: -- X-Spam_report: (-2.1 / 5.0 requ) BAYES_00=-1.9, DKIMWL_WL_HIGH=-0.001, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, DKIM_VALID_EF=-0.1, RCVD_IN_DNSWL_NONE=-0.0001, RCVD_IN_MSPIKE_H4=0.001, RCVD_IN_MSPIKE_WL=0.001, SPF_HELO_NONE=0.001, SPF_PASS=-0.001 autolearn=ham autolearn_force=no X-Spam_action: no action X-BeenThere: qemu-devel@nongnu.org X-Mailman-Version: 2.1.23 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Cc: =?UTF-8?q?Daniel=20P=2E=20Berrang=C3=A9?= , Markus Armbruster , Gerd Hoffmann , =?UTF-8?q?Marc-Andr=C3=A9=20Lureau?= , Paolo Bonzini Errors-To: qemu-devel-bounces+importer=patchew.org@nongnu.org Sender: "Qemu-devel" X-ZohoMail-DKIM: fail (Header signature does not verify) From: Markus Armbruster Reviewed-by: Paolo Bonzini Reviewed-by: Eric Blake Signed-off-by: Markus Armbruster Signed-off-by: Daniel P. Berrang=C3=A9 --- tests/test-util-sockets.c | 48 ++++++++++++++++----------------------- 1 file changed, 20 insertions(+), 28 deletions(-) diff --git a/tests/test-util-sockets.c b/tests/test-util-sockets.c index a4792253ba..40ff893e64 100644 --- a/tests/test-util-sockets.c +++ b/tests/test-util-sockets.c @@ -261,6 +261,24 @@ static gpointer unix_client_thread_func(gpointer user_= data) return NULL; } =20 +static void test_socket_unix_abstract_one(SocketAddress *addr) +{ + GThread *serv, *cli; + + serv =3D g_thread_new("abstract_unix_server", + unix_server_thread_func, + addr); + + sleep(1); + + cli =3D g_thread_new("abstract_unix_client", + unix_client_thread_func, + addr); + + g_thread_join(cli); + g_thread_join(serv); +} + static void test_socket_unix_abstract_good(void) { SocketAddress addr; @@ -272,40 +290,14 @@ static void test_socket_unix_abstract_good(void) addr.u.q_unix.abstract =3D true; =20 /* non tight socklen serv and cli */ - addr.u.q_unix.has_tight =3D false; addr.u.q_unix.tight =3D false; - - GThread *serv =3D g_thread_new("abstract_unix_server", - unix_server_thread_func, - &addr); - - sleep(1); - - GThread *cli =3D g_thread_new("abstract_unix_client", - unix_client_thread_func, - &addr); - - g_thread_join(cli); - g_thread_join(serv); + test_socket_unix_abstract_one(&addr); =20 /* tight socklen serv and cli */ - addr.u.q_unix.has_tight =3D true; addr.u.q_unix.tight =3D true; - - serv =3D g_thread_new("abstract_unix_server", - unix_server_thread_func, - &addr); - - sleep(1); - - cli =3D g_thread_new("abstract_unix_client", - unix_client_thread_func, - &addr); - - g_thread_join(cli); - g_thread_join(serv); + test_socket_unix_abstract_one(&addr); =20 g_free(addr.u.q_unix.path); } --=20 2.28.0 From nobody Fri May 17 05:50:22 2024 Delivered-To: importer@patchew.org Authentication-Results: mx.zohomail.com; dkim=fail; spf=pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) smtp.mailfrom=qemu-devel-bounces+importer=patchew.org@nongnu.org; dmarc=fail(p=none dis=none) header.from=redhat.com ARC-Seal: i=1; a=rsa-sha256; t=1604412288; cv=none; d=zohomail.com; s=zohoarc; b=Q04fDjNXYImxRnnAyqWHkOSLjN04A19JrIGRC0XWWwVm/+voxAx/N2Db6NmbgpwJfreAb9eWSbaiwYIpu3zGog+7tSwVsmJ/M4sXILw3eNx/chNDXAc7RxbMd+o3pWcCucaE9dMNb9FWg5i5vJqE0auzObG2YtoY1rexU/Z7WFw= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1604412288; h=Content-Type:Content-Transfer-Encoding:Cc:Date:From:In-Reply-To:List-Subscribe:List-Post:List-Id:List-Archive:List-Help:List-Unsubscribe:MIME-Version:Message-ID:References:Sender:Subject:To; bh=YC2TS3VqAycTRmYfO/3l/0PPPilQhWOhqd3f45gFHJI=; b=HJnZjYBsHV1nOTAWiiKI+jmjoomoZOHw7Zq+ht8F+rf9cOtqVmAyy5+Tt9Semr3X5A6XObbagDctaDKKvhpirh8uPYk5eP1t/tcClmqR0dfEnBFzFQwMte3FI7Q3+iCImkpgolnwHEeqyp/VGJzQ2oG9hJX/qcM7PtsblyVfnPo= ARC-Authentication-Results: i=1; mx.zohomail.com; dkim=fail; spf=pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) smtp.mailfrom=qemu-devel-bounces+importer=patchew.org@nongnu.org; dmarc=fail header.from= (p=none dis=none) header.from= Return-Path: Received: from lists.gnu.org (lists.gnu.org [209.51.188.17]) by mx.zohomail.com with SMTPS id 1604412288178732.9715724010814; Tue, 3 Nov 2020 06:04:48 -0800 (PST) Received: from localhost ([::1]:33194 helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1kZwvV-0008UD-8W for importer@patchew.org; Tue, 03 Nov 2020 09:04:45 -0500 Received: from eggs.gnu.org ([2001:470:142:3::10]:49184) by lists.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1kZwts-0006od-LI for qemu-devel@nongnu.org; Tue, 03 Nov 2020 09:03:04 -0500 Received: from us-smtp-delivery-124.mimecast.com ([63.128.21.124]:50561) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_CBC_SHA1:256) (Exim 4.90_1) (envelope-from ) id 1kZwtp-0003N3-2x for qemu-devel@nongnu.org; Tue, 03 Nov 2020 09:03:04 -0500 Received: from mimecast-mx01.redhat.com (mimecast-mx01.redhat.com [209.132.183.4]) (Using TLS) by relay.mimecast.com with ESMTP id us-mta-182-7dAK9RtPPpOFv1CZ_rcU9g-1; Tue, 03 Nov 2020 09:02:57 -0500 Received: from smtp.corp.redhat.com (int-mx01.intmail.prod.int.phx2.redhat.com [10.5.11.11]) (using TLSv1.2 with cipher AECDH-AES256-SHA (256/256 bits)) (No client certificate requested) by mimecast-mx01.redhat.com (Postfix) with ESMTPS id 850C0835B49 for ; Tue, 3 Nov 2020 14:02:56 +0000 (UTC) Received: from fedora.redhat.com (ovpn-115-87.ams2.redhat.com [10.36.115.87]) by smtp.corp.redhat.com (Postfix) with ESMTP id B13FB5B4D6; Tue, 3 Nov 2020 14:02:47 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=redhat.com; s=mimecast20190719; t=1604412179; 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=YC2TS3VqAycTRmYfO/3l/0PPPilQhWOhqd3f45gFHJI=; b=PdjH0/U6CwNzRs0ZsOTXvyt6f+Twh8PyvSlCdGGgu8vqxujl34ZS4cgJCsvd7pFIxaL2pC hqMTCNYZ4Y0B22gm9hfo4Mj/M5cgZr9kqbsm1HSMIf9ETuvoVRuBjJ6/iCmNlcONrMLdlo 8XPs8OBbcTIHyfGjrmsiiB8isK4W0c8= X-MC-Unique: 7dAK9RtPPpOFv1CZ_rcU9g-1 From: =?UTF-8?q?Daniel=20P=2E=20Berrang=C3=A9?= To: qemu-devel@nongnu.org Subject: [PULL 05/11] test-util-sockets: Synchronize properly, don't sleep(1) Date: Tue, 3 Nov 2020 14:02:19 +0000 Message-Id: <20201103140225.496776-6-berrange@redhat.com> In-Reply-To: <20201103140225.496776-1-berrange@redhat.com> References: <20201103140225.496776-1-berrange@redhat.com> MIME-Version: 1.0 X-Scanned-By: MIMEDefang 2.79 on 10.5.11.11 Authentication-Results: relay.mimecast.com; auth=pass smtp.auth=CUSA124A263 smtp.mailfrom=berrange@redhat.com X-Mimecast-Spam-Score: 0 X-Mimecast-Originator: redhat.com Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: quoted-printable Received-SPF: pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) client-ip=209.51.188.17; envelope-from=qemu-devel-bounces+importer=patchew.org@nongnu.org; helo=lists.gnu.org; Received-SPF: pass client-ip=63.128.21.124; envelope-from=berrange@redhat.com; helo=us-smtp-delivery-124.mimecast.com X-detected-operating-system: by eggs.gnu.org: First seen = 2020/11/03 01:02:05 X-ACL-Warn: Detected OS = Linux 2.2.x-3.x [generic] [fuzzy] X-Spam_score_int: -20 X-Spam_score: -2.1 X-Spam_bar: -- X-Spam_report: (-2.1 / 5.0 requ) BAYES_00=-1.9, DKIMWL_WL_HIGH=-0.001, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, DKIM_VALID_EF=-0.1, RCVD_IN_DNSWL_NONE=-0.0001, RCVD_IN_MSPIKE_H5=0.001, RCVD_IN_MSPIKE_WL=0.001, SPF_HELO_NONE=0.001, SPF_PASS=-0.001 autolearn=ham autolearn_force=no X-Spam_action: no action X-BeenThere: qemu-devel@nongnu.org X-Mailman-Version: 2.1.23 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Cc: =?UTF-8?q?Daniel=20P=2E=20Berrang=C3=A9?= , Markus Armbruster , Gerd Hoffmann , =?UTF-8?q?Marc-Andr=C3=A9=20Lureau?= , Paolo Bonzini Errors-To: qemu-devel-bounces+importer=patchew.org@nongnu.org Sender: "Qemu-devel" X-ZohoMail-DKIM: fail (Header signature does not verify) From: Markus Armbruster The abstract sockets test spawns a thread to listen and accept, and a second one to connect, with a sleep(1) in between to "ensure" the former is listening when the latter tries to connect. Review fail. Risks spurious test failure, say when a heavily loaded machine doesn't schedule the first thread quickly enough. It's also slow. Listen and accept in the main thread, and start the connect thread in between. Look ma, no sleep! Run time drops from 2s wall clock to a few milliseconds. Reviewed-by: Paolo Bonzini Reviewed-by: Eric Blake Signed-off-by: Markus Armbruster Signed-off-by: Daniel P. Berrang=C3=A9 --- tests/test-util-sockets.c | 40 +++++++++++++-------------------------- 1 file changed, 13 insertions(+), 27 deletions(-) diff --git a/tests/test-util-sockets.c b/tests/test-util-sockets.c index 40ff893e64..4cedf622f0 100644 --- a/tests/test-util-sockets.c +++ b/tests/test-util-sockets.c @@ -230,26 +230,6 @@ static void test_socket_fd_pass_num_nocli(void) #endif =20 #ifdef __linux__ -static gpointer unix_server_thread_func(gpointer user_data) -{ - SocketAddress *addr =3D user_data; - int fd; - int connfd; - struct sockaddr_un un; - socklen_t len =3D sizeof(un); - - fd =3D socket_listen(addr, 1, &error_abort); - g_assert_cmpint(fd, >=3D, 0); - g_assert(fd_is_socket(fd)); - - connfd =3D accept(fd, (struct sockaddr *)&un, &len); - g_assert_cmpint(connfd, !=3D, -1); - close(connfd); - - close(fd); - return NULL; -} - static gpointer unix_client_thread_func(gpointer user_data) { SocketAddress *addr =3D user_data; @@ -263,20 +243,26 @@ static gpointer unix_client_thread_func(gpointer user= _data) =20 static void test_socket_unix_abstract_one(SocketAddress *addr) { - GThread *serv, *cli; - - serv =3D g_thread_new("abstract_unix_server", - unix_server_thread_func, - addr); + int fd, connfd; + GThread *cli; + struct sockaddr_un un; + socklen_t len =3D sizeof(un); =20 - sleep(1); + fd =3D socket_listen(addr, 1, &error_abort); + g_assert_cmpint(fd, >=3D, 0); + g_assert(fd_is_socket(fd)); =20 cli =3D g_thread_new("abstract_unix_client", unix_client_thread_func, addr); =20 + connfd =3D accept(fd, (struct sockaddr *)&un, &len); + g_assert_cmpint(connfd, !=3D, -1); + close(connfd); + + close(fd); + g_thread_join(cli); - g_thread_join(serv); } =20 static void test_socket_unix_abstract_good(void) --=20 2.28.0 From nobody Fri May 17 05:50:22 2024 Delivered-To: importer@patchew.org Authentication-Results: mx.zohomail.com; dkim=fail; spf=pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) smtp.mailfrom=qemu-devel-bounces+importer=patchew.org@nongnu.org; dmarc=fail(p=none dis=none) header.from=redhat.com ARC-Seal: i=1; a=rsa-sha256; t=1604412514; cv=none; d=zohomail.com; s=zohoarc; b=VSTrUNpH7s+5Kiy54iRq+BcEccSJLQ5ujsdxls3N9zJIKmet9/GmtVNpftvceNiaES2/bL1UahbpWbOuQ+6OSfv4LVQm2MwrYHLZ/8perJVX8+MAleX5OLMUKuWdLYi7hi4EHXNffkIZWXWjjE8tOnDlhYCjB/AikqKrMEoEmAI= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1604412514; h=Content-Type:Content-Transfer-Encoding:Cc:Date:From:In-Reply-To:List-Subscribe:List-Post:List-Id:List-Archive:List-Help:List-Unsubscribe:MIME-Version:Message-ID:References:Sender:Subject:To; bh=Q+IjmS1q+jOGviqOHLrLDb+/UDo2/xtYhKrZpy2+2zU=; b=e6oMyghvwDrIQqlkjtEkhP3L+71jm5mc8U+reWoeLOUlyNZUf1mamPHuhNMaDy/OvyW77GC0UJskGBxQzoeaPwlkNxrR3vQxf/MdWwWVeyRc7m89H/BwGupFGDwgmEVDBWwYibYpNZuCPd6c2OywhOOs6AiwgvNLExO4kAGbPsw= ARC-Authentication-Results: i=1; mx.zohomail.com; dkim=fail; spf=pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) smtp.mailfrom=qemu-devel-bounces+importer=patchew.org@nongnu.org; dmarc=fail header.from= (p=none dis=none) header.from= Return-Path: Received: from lists.gnu.org (lists.gnu.org [209.51.188.17]) by mx.zohomail.com with SMTPS id 1604412514210108.6777397191538; Tue, 3 Nov 2020 06:08:34 -0800 (PST) Received: from localhost ([::1]:41726 helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1kZwzB-0003k8-9w for importer@patchew.org; Tue, 03 Nov 2020 09:08:33 -0500 Received: from eggs.gnu.org ([2001:470:142:3::10]:49196) by lists.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1kZwtt-0006pC-EI for qemu-devel@nongnu.org; Tue, 03 Nov 2020 09:03:06 -0500 Received: from us-smtp-delivery-124.mimecast.com ([63.128.21.124]:53127) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_CBC_SHA1:256) (Exim 4.90_1) (envelope-from ) id 1kZwtr-0003PI-3I for qemu-devel@nongnu.org; Tue, 03 Nov 2020 09:03:05 -0500 Received: from mimecast-mx01.redhat.com (mimecast-mx01.redhat.com [209.132.183.4]) (Using TLS) by relay.mimecast.com with ESMTP id us-mta-306-daTXTdvvMKK1A2mXSBXBAw-1; Tue, 03 Nov 2020 09:03:00 -0500 Received: from smtp.corp.redhat.com (int-mx01.intmail.prod.int.phx2.redhat.com [10.5.11.11]) (using TLSv1.2 with cipher AECDH-AES256-SHA (256/256 bits)) (No client certificate requested) by mimecast-mx01.redhat.com (Postfix) with ESMTPS id 421B364151 for ; Tue, 3 Nov 2020 14:02:59 +0000 (UTC) Received: from fedora.redhat.com (ovpn-115-87.ams2.redhat.com [10.36.115.87]) by smtp.corp.redhat.com (Postfix) with ESMTP id E09CB5B4C7; Tue, 3 Nov 2020 14:02:56 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=redhat.com; s=mimecast20190719; t=1604412182; 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=Q+IjmS1q+jOGviqOHLrLDb+/UDo2/xtYhKrZpy2+2zU=; b=DPsZjABFXmsK07shxCcIeb27xFdhUvYFIPvgsF9U7UOkc4rFeVFD7T6AZE8N4JSSRgN/gd NOHv2CQPUVJqca9tePaXEW+woVU8P16IQiwoAsu8/UrVwbvysphLDiA1mZK/h5O404ERio BGJjDlW3I6ty0NSfdV3knabQ+ip4Q4g= X-MC-Unique: daTXTdvvMKK1A2mXSBXBAw-1 From: =?UTF-8?q?Daniel=20P=2E=20Berrang=C3=A9?= To: qemu-devel@nongnu.org Subject: [PULL 06/11] test-util-sockets: Test the complete abstract socket matrix Date: Tue, 3 Nov 2020 14:02:20 +0000 Message-Id: <20201103140225.496776-7-berrange@redhat.com> In-Reply-To: <20201103140225.496776-1-berrange@redhat.com> References: <20201103140225.496776-1-berrange@redhat.com> MIME-Version: 1.0 X-Scanned-By: MIMEDefang 2.79 on 10.5.11.11 Authentication-Results: relay.mimecast.com; auth=pass smtp.auth=CUSA124A263 smtp.mailfrom=berrange@redhat.com X-Mimecast-Spam-Score: 0 X-Mimecast-Originator: redhat.com Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: quoted-printable Received-SPF: pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) client-ip=209.51.188.17; envelope-from=qemu-devel-bounces+importer=patchew.org@nongnu.org; helo=lists.gnu.org; Received-SPF: pass client-ip=63.128.21.124; envelope-from=berrange@redhat.com; helo=us-smtp-delivery-124.mimecast.com X-detected-operating-system: by eggs.gnu.org: First seen = 2020/11/03 01:02:05 X-ACL-Warn: Detected OS = Linux 2.2.x-3.x [generic] [fuzzy] X-Spam_score_int: -20 X-Spam_score: -2.1 X-Spam_bar: -- X-Spam_report: (-2.1 / 5.0 requ) BAYES_00=-1.9, DKIMWL_WL_HIGH=-0.001, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, DKIM_VALID_EF=-0.1, RCVD_IN_DNSWL_NONE=-0.0001, RCVD_IN_MSPIKE_H5=0.001, RCVD_IN_MSPIKE_WL=0.001, SPF_HELO_NONE=0.001, SPF_PASS=-0.001 autolearn=ham autolearn_force=no X-Spam_action: no action X-BeenThere: qemu-devel@nongnu.org X-Mailman-Version: 2.1.23 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Cc: =?UTF-8?q?Daniel=20P=2E=20Berrang=C3=A9?= , Markus Armbruster , Gerd Hoffmann , =?UTF-8?q?Marc-Andr=C3=A9=20Lureau?= , Paolo Bonzini Errors-To: qemu-devel-bounces+importer=patchew.org@nongnu.org Sender: "Qemu-devel" X-ZohoMail-DKIM: fail (Header signature does not verify) From: Markus Armbruster The test covers only two out of nine combinations. Test all nine. Four turn out to be broken. Marked /* BUG */. Reviewed-by: Paolo Bonzini Reviewed-by: Eric Blake Signed-off-by: Markus Armbruster Signed-off-by: Daniel P. Berrang=C3=A9 --- tests/test-util-sockets.c | 91 ++++++++++++++++++++++++++++----------- 1 file changed, 65 insertions(+), 26 deletions(-) diff --git a/tests/test-util-sockets.c b/tests/test-util-sockets.c index 4cedf622f0..f8b6586e70 100644 --- a/tests/test-util-sockets.c +++ b/tests/test-util-sockets.c @@ -230,60 +230,99 @@ static void test_socket_fd_pass_num_nocli(void) #endif =20 #ifdef __linux__ + +#define ABSTRACT_SOCKET_VARIANTS 3 + +typedef struct { + SocketAddress *server, *client[ABSTRACT_SOCKET_VARIANTS]; + bool expect_connect[ABSTRACT_SOCKET_VARIANTS]; +} abstract_socket_matrix_row; + static gpointer unix_client_thread_func(gpointer user_data) { - SocketAddress *addr =3D user_data; - int fd; - - fd =3D socket_connect(addr, &error_abort); - g_assert_cmpint(fd, >=3D, 0); - close(fd); + abstract_socket_matrix_row *row =3D user_data; + Error *err =3D NULL; + int i, fd; + + for (i =3D 0; i < ABSTRACT_SOCKET_VARIANTS; i++) { + if (row->expect_connect[i]) { + fd =3D socket_connect(row->client[i], &error_abort); + g_assert_cmpint(fd, >=3D, 0); + } else { + fd =3D socket_connect(row->client[i], &err); + g_assert_cmpint(fd, =3D=3D, -1); + error_free_or_abort(&err); + } + close(fd); + } return NULL; } =20 -static void test_socket_unix_abstract_one(SocketAddress *addr) +static void test_socket_unix_abstract_row(abstract_socket_matrix_row *test) { - int fd, connfd; + int fd, connfd, i; GThread *cli; struct sockaddr_un un; socklen_t len =3D sizeof(un); =20 - fd =3D socket_listen(addr, 1, &error_abort); + /* Last one must connect, or else accept() below hangs */ + assert(test->expect_connect[ABSTRACT_SOCKET_VARIANTS - 1]); + + fd =3D socket_listen(test->server, 1, &error_abort); g_assert_cmpint(fd, >=3D, 0); g_assert(fd_is_socket(fd)); =20 cli =3D g_thread_new("abstract_unix_client", unix_client_thread_func, - addr); - - connfd =3D accept(fd, (struct sockaddr *)&un, &len); - g_assert_cmpint(connfd, !=3D, -1); - close(connfd); + test); + + for (i =3D 0; i < ABSTRACT_SOCKET_VARIANTS; i++) { + if (test->expect_connect[i]) { + connfd =3D accept(fd, (struct sockaddr *)&un, &len); + g_assert_cmpint(connfd, !=3D, -1); + close(connfd); + } + } =20 close(fd); - g_thread_join(cli); } =20 -static void test_socket_unix_abstract_good(void) +static void test_socket_unix_abstract(void) { - SocketAddress addr; + SocketAddress addr, addr_tight, addr_padded; + abstract_socket_matrix_row matrix[ABSTRACT_SOCKET_VARIANTS] =3D { + { &addr, + { &addr_tight, &addr_padded, &addr }, + { false /* BUG */, true /* BUG */, true } }, + { &addr_tight, + { &addr_padded, &addr, &addr_tight }, + { false, false /* BUG */, true } }, + { &addr_padded, + { &addr, &addr_tight, &addr_padded }, + { true /* BUG */, false, true } } + }; + int i; =20 addr.type =3D SOCKET_ADDRESS_TYPE_UNIX; addr.u.q_unix.path =3D g_strdup_printf("unix-%d-%u", getpid(), g_random_int()); addr.u.q_unix.has_abstract =3D true; addr.u.q_unix.abstract =3D true; - - /* non tight socklen serv and cli */ addr.u.q_unix.has_tight =3D false; addr.u.q_unix.tight =3D false; - test_socket_unix_abstract_one(&addr); =20 - /* tight socklen serv and cli */ - addr.u.q_unix.has_tight =3D true; - addr.u.q_unix.tight =3D true; - test_socket_unix_abstract_one(&addr); + addr_tight =3D addr; + addr_tight.u.q_unix.has_tight =3D true; + addr_tight.u.q_unix.tight =3D true; + + addr_padded =3D addr; + addr_padded.u.q_unix.has_tight =3D true; + addr_padded.u.q_unix.tight =3D false; + + for (i =3D 0; i < ABSTRACT_SOCKET_VARIANTS; i++) { + test_socket_unix_abstract_row(&matrix[i]); + } =20 g_free(addr.u.q_unix.path); } @@ -330,8 +369,8 @@ int main(int argc, char **argv) } =20 #ifdef __linux__ - g_test_add_func("/util/socket/unix-abstract/good", - test_socket_unix_abstract_good); + g_test_add_func("/util/socket/unix-abstract", + test_socket_unix_abstract); #endif =20 end: --=20 2.28.0 From nobody Fri May 17 05:50:22 2024 Delivered-To: importer@patchew.org Authentication-Results: mx.zohomail.com; dkim=fail; spf=pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) smtp.mailfrom=qemu-devel-bounces+importer=patchew.org@nongnu.org; dmarc=fail(p=none dis=none) header.from=redhat.com ARC-Seal: i=1; a=rsa-sha256; t=1604412510; cv=none; d=zohomail.com; s=zohoarc; b=ZwS1K314n7/4ykVx1relOJ1sXWuUyaf5ccsQO/YX3/R9ZCOQm9Q1MIBuuYIHoZJUZJXlYgTeu5AUH+13rtbXaNtxh31OwSdrrpNvHyUisobHDKqi7qO8OnfSx+GTp/2sdhGVxIZxiTMju2pqt14H0Npms3NUZil49JhylG8dXmQ= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1604412510; h=Content-Type:Content-Transfer-Encoding:Cc:Date:From:In-Reply-To:List-Subscribe:List-Post:List-Id:List-Archive:List-Help:List-Unsubscribe:MIME-Version:Message-ID:References:Sender:Subject:To; bh=daTRnckAVOEt/0EfT2G47XJOMh4rX8swlOmNjC5SOzQ=; b=Won7iPkCoaUEZ6u5AkdACEeZffjHO9CCGSK4T3HJRram00Rwx743IeO5nk8ibE7Cb9TYhANABRscA6QSu88EFPzW8gMjhyYXeSUTHKhViT5HBGS+HGNtDEdui5l+nveTYBrzVOvGfFic3aXIINauejMUm3oZwJqOYMunFVUbh9w= ARC-Authentication-Results: i=1; mx.zohomail.com; dkim=fail; spf=pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) smtp.mailfrom=qemu-devel-bounces+importer=patchew.org@nongnu.org; dmarc=fail header.from= (p=none dis=none) header.from= Return-Path: Received: from lists.gnu.org (lists.gnu.org [209.51.188.17]) by mx.zohomail.com with SMTPS id 1604412510710637.8223428280269; Tue, 3 Nov 2020 06:08:30 -0800 (PST) Received: from localhost ([::1]:41374 helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1kZwz7-0003bd-RP for importer@patchew.org; Tue, 03 Nov 2020 09:08:29 -0500 Received: from eggs.gnu.org ([2001:470:142:3::10]:49248) by lists.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1kZwu0-0006s8-VZ for qemu-devel@nongnu.org; Tue, 03 Nov 2020 09:03:12 -0500 Received: from us-smtp-delivery-124.mimecast.com ([63.128.21.124]:60843) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_CBC_SHA1:256) (Exim 4.90_1) (envelope-from ) id 1kZwtu-0003PX-Ts for qemu-devel@nongnu.org; Tue, 03 Nov 2020 09:03:10 -0500 Received: from mimecast-mx01.redhat.com (mimecast-mx01.redhat.com [209.132.183.4]) (Using TLS) by relay.mimecast.com with ESMTP id us-mta-412-h3EOtE28OjGfXMN1sjggdw-1; Tue, 03 Nov 2020 09:03:02 -0500 Received: from smtp.corp.redhat.com (int-mx01.intmail.prod.int.phx2.redhat.com [10.5.11.11]) (using TLSv1.2 with cipher AECDH-AES256-SHA (256/256 bits)) (No client certificate requested) by mimecast-mx01.redhat.com (Postfix) with ESMTPS id A040C64156 for ; Tue, 3 Nov 2020 14:03:01 +0000 (UTC) Received: from fedora.redhat.com (ovpn-115-87.ams2.redhat.com [10.36.115.87]) by smtp.corp.redhat.com (Postfix) with ESMTP id 8AECE5B4C7; Tue, 3 Nov 2020 14:02:59 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=redhat.com; s=mimecast20190719; t=1604412184; 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=daTRnckAVOEt/0EfT2G47XJOMh4rX8swlOmNjC5SOzQ=; b=bbRdtPgLnLMLT1aljTAGI7mOLsWpsGMNMb+dmCYFAC+F5ctJmnPdDtD+yJjjKThjtkjCKg O3V6Yh3Me3X+ywNa/K6FUnn/TQ+w/1PI1SLlJYN3CETwioaphnmILqVDgmOpEhsn61sWnf fVRVActn8Gb4Uiadejht/1I2Pl7dj2w= X-MC-Unique: h3EOtE28OjGfXMN1sjggdw-1 From: =?UTF-8?q?Daniel=20P=2E=20Berrang=C3=A9?= To: qemu-devel@nongnu.org Subject: [PULL 07/11] sockets: Fix default of UnixSocketAddress member @tight Date: Tue, 3 Nov 2020 14:02:21 +0000 Message-Id: <20201103140225.496776-8-berrange@redhat.com> In-Reply-To: <20201103140225.496776-1-berrange@redhat.com> References: <20201103140225.496776-1-berrange@redhat.com> MIME-Version: 1.0 X-Scanned-By: MIMEDefang 2.79 on 10.5.11.11 Authentication-Results: relay.mimecast.com; auth=pass smtp.auth=CUSA124A263 smtp.mailfrom=berrange@redhat.com X-Mimecast-Spam-Score: 0 X-Mimecast-Originator: redhat.com Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: quoted-printable Received-SPF: pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) client-ip=209.51.188.17; envelope-from=qemu-devel-bounces+importer=patchew.org@nongnu.org; helo=lists.gnu.org; Received-SPF: pass client-ip=63.128.21.124; envelope-from=berrange@redhat.com; helo=us-smtp-delivery-124.mimecast.com X-detected-operating-system: by eggs.gnu.org: First seen = 2020/11/03 01:02:05 X-ACL-Warn: Detected OS = Linux 2.2.x-3.x [generic] [fuzzy] X-Spam_score_int: -20 X-Spam_score: -2.1 X-Spam_bar: -- X-Spam_report: (-2.1 / 5.0 requ) BAYES_00=-1.9, DKIMWL_WL_HIGH=-0.001, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, DKIM_VALID_EF=-0.1, RCVD_IN_DNSWL_NONE=-0.0001, RCVD_IN_MSPIKE_H5=0.001, RCVD_IN_MSPIKE_WL=0.001, SPF_HELO_NONE=0.001, SPF_PASS=-0.001 autolearn=ham autolearn_force=no X-Spam_action: no action X-BeenThere: qemu-devel@nongnu.org X-Mailman-Version: 2.1.23 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Cc: Kevin Wolf , =?UTF-8?q?Daniel=20P=2E=20Berrang=C3=A9?= , Markus Armbruster , Gerd Hoffmann , =?UTF-8?q?Marc-Andr=C3=A9=20Lureau?= , Paolo Bonzini Errors-To: qemu-devel-bounces+importer=patchew.org@nongnu.org Sender: "Qemu-devel" X-ZohoMail-DKIM: fail (Header signature does not verify) From: Markus Armbruster An optional bool member of a QAPI struct can be false, true, or absent. The previous commit demonstrated that socket_listen() and socket_connect() are broken for absent @tight, and indeed QMP chardev- add also defaults absent member @tight to false instead of true. In C, QAPI members are represented by two fields, has_MEMBER and MEMBER. We have: has_MEMBER MEMBER false true false true true true absent false false/ignore When has_MEMBER is false, MEMBER should be set to false on write, and ignored on read. For QMP, the QAPI visitors handle absent @tight by setting both @has_tight and @tight to false. unix_listen_saddr() and unix_connect_saddr() however use @tight only, disregarding @has_tight. This is wrong and means that absent @tight defaults to false whereas it should default to true. The same is true for @has_abstract, though @abstract defaults to false and therefore has the same behavior for all of QMP, HMP and CLI. Fix unix_listen_saddr() and unix_connect_saddr() to check @has_abstract/@has_tight, and to default absent @tight to true. However, this is only half of the story. HMP chardev-add and CLI -chardev so far correctly defaulted @tight to true, but defaults to false again with the above fix for HMP and CLI. In fact, the "tight" and "abstract" options now break completely. Digging deeper, we find that qemu_chr_parse_socket() also ignores @has_tight, leaving it false when it sets @tight. That is also wrong, but the two wrongs cancelled out. Fix qemu_chr_parse_socket() to set @has_tight and @has_abstract; writing testcases for HMP and CLI is left for another day. Fixes: 776b97d3605ed0fc94443048fdf988c7725e38a9 Reported-by: Kevin Wolf Reviewed-by: Paolo Bonzini Reviewed-by: Eric Blake Signed-off-by: Markus Armbruster Signed-off-by: Daniel P. Berrang=C3=A9 --- chardev/char-socket.c | 2 ++ tests/test-util-sockets.c | 6 +++--- util/qemu-sockets.c | 4 ++-- 3 files changed, 7 insertions(+), 5 deletions(-) diff --git a/chardev/char-socket.c b/chardev/char-socket.c index 95e45812d5..1ee5a8c295 100644 --- a/chardev/char-socket.c +++ b/chardev/char-socket.c @@ -1439,7 +1439,9 @@ static void qemu_chr_parse_socket(QemuOpts *opts, Cha= rdevBackend *backend, addr->type =3D SOCKET_ADDRESS_LEGACY_KIND_UNIX; q_unix =3D addr->u.q_unix.data =3D g_new0(UnixSocketAddress, 1); q_unix->path =3D g_strdup(path); + q_unix->has_tight =3D true; q_unix->tight =3D tight; + q_unix->has_abstract =3D true; q_unix->abstract =3D abstract; } else if (host) { addr->type =3D SOCKET_ADDRESS_LEGACY_KIND_INET; diff --git a/tests/test-util-sockets.c b/tests/test-util-sockets.c index f8b6586e70..7ecf95579b 100644 --- a/tests/test-util-sockets.c +++ b/tests/test-util-sockets.c @@ -294,13 +294,13 @@ static void test_socket_unix_abstract(void) abstract_socket_matrix_row matrix[ABSTRACT_SOCKET_VARIANTS] =3D { { &addr, { &addr_tight, &addr_padded, &addr }, - { false /* BUG */, true /* BUG */, true } }, + { true, false, true } }, { &addr_tight, { &addr_padded, &addr, &addr_tight }, - { false, false /* BUG */, true } }, + { false, true, true } }, { &addr_padded, { &addr, &addr_tight, &addr_padded }, - { true /* BUG */, false, true } } + { false, false, true } } }; int i; =20 diff --git a/util/qemu-sockets.c b/util/qemu-sockets.c index 38f82179b0..3ceaa81226 100644 --- a/util/qemu-sockets.c +++ b/util/qemu-sockets.c @@ -925,7 +925,7 @@ static int unix_listen_saddr(UnixSocketAddress *saddr, if (saddr->abstract) { un.sun_path[0] =3D '\0'; memcpy(&un.sun_path[1], path, pathlen); - if (saddr->tight) { + if (!saddr->has_tight || saddr->tight) { addrlen =3D offsetof(struct sockaddr_un, sun_path) + 1 + pathl= en; } } else { @@ -985,7 +985,7 @@ static int unix_connect_saddr(UnixSocketAddress *saddr,= Error **errp) if (saddr->abstract) { un.sun_path[0] =3D '\0'; memcpy(&un.sun_path[1], saddr->path, pathlen); - if (saddr->tight) { + if (!saddr->has_tight || saddr->tight) { addrlen =3D offsetof(struct sockaddr_un, sun_path) + 1 + pathl= en; } } else { --=20 2.28.0 From nobody Fri May 17 05:50:22 2024 Delivered-To: importer@patchew.org Authentication-Results: mx.zohomail.com; dkim=fail; spf=pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) smtp.mailfrom=qemu-devel-bounces+importer=patchew.org@nongnu.org; dmarc=fail(p=none dis=none) header.from=redhat.com ARC-Seal: i=1; a=rsa-sha256; t=1604412508; cv=none; d=zohomail.com; s=zohoarc; b=KB98ube0mgJZhs8RfCinx1cgBbme+k2NFeWRAxMkdYqsAx/Ol1HGZwqxjhb4aR4Wdp+OjRLaCH/hTAZJgpjU8KyXS83Q3OZjqoyKRiRTz8J+J6ZImUp67OSx3oqgK4mpHhAhSyoLu7xGcHQWvyXdUsHmOK2H0tv+hnslCc9wisQ= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1604412508; h=Content-Type:Content-Transfer-Encoding:Cc:Date:From:In-Reply-To:List-Subscribe:List-Post:List-Id:List-Archive:List-Help:List-Unsubscribe:MIME-Version:Message-ID:References:Sender:Subject:To; bh=EdO7Xmkx5AxGvMekA6FOxYt0BTQFmYn0IIJC9+umdAg=; b=W7N7OjoPbwr15psmavbdxvH95ANLw5DOkhrwV7LrhQnvpkJ4KGmKY75tuLcPJApi5slbntW5T3tcTIikCFO1qcLG8MTYVCVSr/+KAVZy2ezrx1IalEu8aSNnvyRcJM+hzv6h7aj3t2qoU5Dqz3IPL0wjP8Ji65c7Pk8NO51A7wM= ARC-Authentication-Results: i=1; mx.zohomail.com; dkim=fail; spf=pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) smtp.mailfrom=qemu-devel-bounces+importer=patchew.org@nongnu.org; dmarc=fail header.from= (p=none dis=none) header.from= Return-Path: Received: from lists.gnu.org (lists.gnu.org [209.51.188.17]) by mx.zohomail.com with SMTPS id 16044125086971008.3411778584931; Tue, 3 Nov 2020 06:08:28 -0800 (PST) Received: from localhost ([::1]:41194 helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1kZwz5-0003X6-Fg for importer@patchew.org; Tue, 03 Nov 2020 09:08:27 -0500 Received: from eggs.gnu.org ([2001:470:142:3::10]:49264) by lists.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1kZwu1-0006uX-P7 for qemu-devel@nongnu.org; Tue, 03 Nov 2020 09:03:13 -0500 Received: from us-smtp-delivery-124.mimecast.com ([63.128.21.124]:25523) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_CBC_SHA1:256) (Exim 4.90_1) (envelope-from ) id 1kZwtw-0003QZ-QI for qemu-devel@nongnu.org; Tue, 03 Nov 2020 09:03:13 -0500 Received: from mimecast-mx01.redhat.com (mimecast-mx01.redhat.com [209.132.183.4]) (Using TLS) by relay.mimecast.com with ESMTP id us-mta-232-NwNYX1UvNx2_841oMRHJGA-1; Tue, 03 Nov 2020 09:03:05 -0500 Received: from smtp.corp.redhat.com (int-mx01.intmail.prod.int.phx2.redhat.com [10.5.11.11]) (using TLSv1.2 with cipher AECDH-AES256-SHA (256/256 bits)) (No client certificate requested) by mimecast-mx01.redhat.com (Postfix) with ESMTPS id 04765186DD26 for ; Tue, 3 Nov 2020 14:03:04 +0000 (UTC) Received: from fedora.redhat.com (ovpn-115-87.ams2.redhat.com [10.36.115.87]) by smtp.corp.redhat.com (Postfix) with ESMTP id 0A6605B4C7; Tue, 3 Nov 2020 14:03:01 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=redhat.com; s=mimecast20190719; t=1604412187; 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=EdO7Xmkx5AxGvMekA6FOxYt0BTQFmYn0IIJC9+umdAg=; b=icShs/N5Ne073AMZ2WG9XtT44WXawTV5T7xpx9y28Z+tSwQ8AUy7qV9raaMP2mfSAnql9u jj10zDy3zVw0eZwzXDFZHnt17OZCrdvGCnqpP5jP38dtyMua4jbRQEHcQYtzi6+G1dL30a XuNCb1bk0fUhEPd0h8dihS4si3P5/tk= X-MC-Unique: NwNYX1UvNx2_841oMRHJGA-1 From: =?UTF-8?q?Daniel=20P=2E=20Berrang=C3=A9?= To: qemu-devel@nongnu.org Subject: [PULL 08/11] sockets: Fix socket_sockaddr_to_address_unix() for abstract sockets Date: Tue, 3 Nov 2020 14:02:22 +0000 Message-Id: <20201103140225.496776-9-berrange@redhat.com> In-Reply-To: <20201103140225.496776-1-berrange@redhat.com> References: <20201103140225.496776-1-berrange@redhat.com> MIME-Version: 1.0 X-Scanned-By: MIMEDefang 2.79 on 10.5.11.11 Authentication-Results: relay.mimecast.com; auth=pass smtp.auth=CUSA124A263 smtp.mailfrom=berrange@redhat.com X-Mimecast-Spam-Score: 0 X-Mimecast-Originator: redhat.com Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: quoted-printable Received-SPF: pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) client-ip=209.51.188.17; envelope-from=qemu-devel-bounces+importer=patchew.org@nongnu.org; helo=lists.gnu.org; Received-SPF: pass client-ip=63.128.21.124; envelope-from=berrange@redhat.com; helo=us-smtp-delivery-124.mimecast.com X-detected-operating-system: by eggs.gnu.org: First seen = 2020/11/03 01:02:05 X-ACL-Warn: Detected OS = Linux 2.2.x-3.x [generic] [fuzzy] X-Spam_score_int: -20 X-Spam_score: -2.1 X-Spam_bar: -- X-Spam_report: (-2.1 / 5.0 requ) BAYES_00=-1.9, DKIMWL_WL_HIGH=-0.001, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, DKIM_VALID_EF=-0.1, RCVD_IN_DNSWL_NONE=-0.0001, RCVD_IN_MSPIKE_H5=0.001, RCVD_IN_MSPIKE_WL=0.001, SPF_HELO_NONE=0.001, SPF_PASS=-0.001 autolearn=ham autolearn_force=no X-Spam_action: no action X-BeenThere: qemu-devel@nongnu.org X-Mailman-Version: 2.1.23 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Cc: =?UTF-8?q?Daniel=20P=2E=20Berrang=C3=A9?= , =?UTF-8?q?Philippe=20Mathieu-Daud=C3=A9?= , Markus Armbruster , Gerd Hoffmann , =?UTF-8?q?Marc-Andr=C3=A9=20Lureau?= , Paolo Bonzini Errors-To: qemu-devel-bounces+importer=patchew.org@nongnu.org Sender: "Qemu-devel" X-ZohoMail-DKIM: fail (Header signature does not verify) From: Markus Armbruster Commit 776b97d360 "qemu-sockets: add abstract UNIX domain socket support" neglected to update socket_sockaddr_to_address_unix(). The function returns a non-abstract socket address for abstract sockets (wrong) with a null @path (also wrong; a non-optional QAPI str member must never be null). The null @path is due to confused code going back all the way to commit 17c55decec "sockets: add helpers for creating SocketAddress from a socket". Add the required special case, and simplify the confused code. Fixes: 776b97d3605ed0fc94443048fdf988c7725e38a9 Reviewed-by: Philippe Mathieu-Daud=C3=A9 Reviewed-by: Paolo Bonzini Signed-off-by: Markus Armbruster Signed-off-by: Daniel P. Berrang=C3=A9 --- util/qemu-sockets.c | 14 ++++++++++++-- 1 file changed, 12 insertions(+), 2 deletions(-) diff --git a/util/qemu-sockets.c b/util/qemu-sockets.c index 3ceaa81226..a578c434c2 100644 --- a/util/qemu-sockets.c +++ b/util/qemu-sockets.c @@ -1270,10 +1270,20 @@ socket_sockaddr_to_address_unix(struct sockaddr_sto= rage *sa, =20 addr =3D g_new0(SocketAddress, 1); addr->type =3D SOCKET_ADDRESS_TYPE_UNIX; - if (su->sun_path[0]) { - addr->u.q_unix.path =3D g_strndup(su->sun_path, sizeof(su->sun_pat= h)); +#ifdef CONFIG_LINUX + if (!su->sun_path[0]) { + /* Linux abstract socket */ + addr->u.q_unix.path =3D g_strndup(su->sun_path + 1, + sizeof(su->sun_path) - 1); + addr->u.q_unix.has_abstract =3D true; + addr->u.q_unix.abstract =3D true; + addr->u.q_unix.has_tight =3D true; + addr->u.q_unix.tight =3D salen < sizeof(*su); + return addr; } +#endif =20 + addr->u.q_unix.path =3D g_strndup(su->sun_path, sizeof(su->sun_path)); return addr; } #endif /* WIN32 */ --=20 2.28.0 From nobody Fri May 17 05:50:22 2024 Delivered-To: importer@patchew.org Authentication-Results: mx.zohomail.com; dkim=fail; spf=pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) smtp.mailfrom=qemu-devel-bounces+importer=patchew.org@nongnu.org; dmarc=fail(p=none dis=none) header.from=redhat.com ARC-Seal: i=1; a=rsa-sha256; t=1604412832; cv=none; d=zohomail.com; s=zohoarc; b=m+dPyMnU7OmRAezz/CXUgF0dgMjFeO/uhLEhC/c0ZGlG6oREy8CiLJ5oaY34Ac0gttpl2Utm3SCAGJQiLf5UDmjnzInNtuidQKf5DxyqzrzDtjIG9HCpy0hVb06RqK3nqYUtIZy4bTbKcpEg4n3/dYJERJWOykQQlS+xpM4e/jk= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1604412832; h=Content-Type:Content-Transfer-Encoding:Cc:Date:From:In-Reply-To:List-Subscribe:List-Post:List-Id:List-Archive:List-Help:List-Unsubscribe:MIME-Version:Message-ID:References:Sender:Subject:To; bh=Rs/Uo9N55lGEE7ywOt25Sg5igC9cyPAcgUcPqC/heTw=; b=LDLmlTP0VNyPwXzeXOgrOk3tyEEjJ0Iu3KVZkvwNIWG0OjLmhQJ+t80QFuTtDJHKbrK4iZmLd0jmTK5eP0vOZ3ZhpG3Weu/ko4NZkWNr6Qr0ccKPJs3FZWYeedy02OZQa/05P32I5sUlDAhn063Z4b45E4ZnJxjsiie9EeO3DQo= ARC-Authentication-Results: i=1; mx.zohomail.com; dkim=fail; spf=pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) smtp.mailfrom=qemu-devel-bounces+importer=patchew.org@nongnu.org; dmarc=fail header.from= (p=none dis=none) header.from= Return-Path: Received: from lists.gnu.org (lists.gnu.org [209.51.188.17]) by mx.zohomail.com with SMTPS id 1604412832717837.328399466021; Tue, 3 Nov 2020 06:13:52 -0800 (PST) Received: from localhost ([::1]:58368 helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1kZx4J-0002KK-UI for importer@patchew.org; Tue, 03 Nov 2020 09:13:51 -0500 Received: from eggs.gnu.org ([2001:470:142:3::10]:49306) by lists.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1kZwu7-000743-Lg for qemu-devel@nongnu.org; Tue, 03 Nov 2020 09:03:20 -0500 Received: from us-smtp-delivery-124.mimecast.com ([63.128.21.124]:32173) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_CBC_SHA1:256) (Exim 4.90_1) (envelope-from ) id 1kZwty-0003Qq-OW for qemu-devel@nongnu.org; Tue, 03 Nov 2020 09:03:19 -0500 Received: from mimecast-mx01.redhat.com (mimecast-mx01.redhat.com [209.132.183.4]) (Using TLS) by relay.mimecast.com with ESMTP id us-mta-324-vPz4vy18PrCoI2C207uWtA-1; Tue, 03 Nov 2020 09:03:07 -0500 Received: from smtp.corp.redhat.com (int-mx01.intmail.prod.int.phx2.redhat.com [10.5.11.11]) (using TLSv1.2 with cipher AECDH-AES256-SHA (256/256 bits)) (No client certificate requested) by mimecast-mx01.redhat.com (Postfix) with ESMTPS id 4A2AB186DD25 for ; Tue, 3 Nov 2020 14:03:06 +0000 (UTC) Received: from fedora.redhat.com (ovpn-115-87.ams2.redhat.com [10.36.115.87]) by smtp.corp.redhat.com (Postfix) with ESMTP id 565006F142; Tue, 3 Nov 2020 14:03:04 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=redhat.com; s=mimecast20190719; t=1604412189; 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=Rs/Uo9N55lGEE7ywOt25Sg5igC9cyPAcgUcPqC/heTw=; b=gEiFN35DzggIMzzTFV4mO8OocVV8bCFgSthrGDxGKPH9yfrH0Ar1+SZdr+cXknIoK1JHfa HA4V2PZOqy30TkBmPo1pvMIu9cmWEhZEPDU8PALc64zYgvm84h7yeAgf1GnWRX48MOIpId esKvfEtDVO4BXovNnjRq+iobCltfZYM= X-MC-Unique: vPz4vy18PrCoI2C207uWtA-1 From: =?UTF-8?q?Daniel=20P=2E=20Berrang=C3=A9?= To: qemu-devel@nongnu.org Subject: [PULL 09/11] char-socket: Fix qemu_chr_socket_address() for abstract sockets Date: Tue, 3 Nov 2020 14:02:23 +0000 Message-Id: <20201103140225.496776-10-berrange@redhat.com> In-Reply-To: <20201103140225.496776-1-berrange@redhat.com> References: <20201103140225.496776-1-berrange@redhat.com> MIME-Version: 1.0 X-Scanned-By: MIMEDefang 2.79 on 10.5.11.11 Authentication-Results: relay.mimecast.com; auth=pass smtp.auth=CUSA124A263 smtp.mailfrom=berrange@redhat.com X-Mimecast-Spam-Score: 0 X-Mimecast-Originator: redhat.com Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: quoted-printable Received-SPF: pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) client-ip=209.51.188.17; envelope-from=qemu-devel-bounces+importer=patchew.org@nongnu.org; helo=lists.gnu.org; Received-SPF: pass client-ip=63.128.21.124; envelope-from=berrange@redhat.com; helo=us-smtp-delivery-124.mimecast.com X-detected-operating-system: by eggs.gnu.org: First seen = 2020/11/03 01:02:05 X-ACL-Warn: Detected OS = Linux 2.2.x-3.x [generic] [fuzzy] X-Spam_score_int: -20 X-Spam_score: -2.1 X-Spam_bar: -- X-Spam_report: (-2.1 / 5.0 requ) BAYES_00=-1.9, DKIMWL_WL_HIGH=-0.001, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, DKIM_VALID_EF=-0.1, RCVD_IN_DNSWL_NONE=-0.0001, RCVD_IN_MSPIKE_H5=0.001, RCVD_IN_MSPIKE_WL=0.001, SPF_HELO_NONE=0.001, SPF_PASS=-0.001 autolearn=ham autolearn_force=no X-Spam_action: no action X-BeenThere: qemu-devel@nongnu.org X-Mailman-Version: 2.1.23 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Cc: =?UTF-8?q?Daniel=20P=2E=20Berrang=C3=A9?= , Markus Armbruster , Gerd Hoffmann , =?UTF-8?q?Marc-Andr=C3=A9=20Lureau?= , Paolo Bonzini Errors-To: qemu-devel-bounces+importer=patchew.org@nongnu.org Sender: "Qemu-devel" X-ZohoMail-DKIM: fail (Header signature does not verify) From: Markus Armbruster Commit 776b97d360 "qemu-sockets: add abstract UNIX domain socket support" neglected to update qemu_chr_socket_address(). It shows shows neither @abstract nor @tight. Fix that. Reviewed-by: Paolo Bonzini Signed-off-by: Markus Armbruster Signed-off-by: Daniel P. Berrang=C3=A9 --- chardev/char-socket.c | 16 ++++++++++++++-- 1 file changed, 14 insertions(+), 2 deletions(-) diff --git a/chardev/char-socket.c b/chardev/char-socket.c index 1ee5a8c295..27a2954f47 100644 --- a/chardev/char-socket.c +++ b/chardev/char-socket.c @@ -443,10 +443,22 @@ static char *qemu_chr_socket_address(SocketChardev *s= , const char *prefix) s->is_listen ? ",server" : ""); break; case SOCKET_ADDRESS_TYPE_UNIX: - return g_strdup_printf("%sunix:%s%s", prefix, - s->addr->u.q_unix.path, + { + const char *tight =3D "", *abstract =3D ""; + UnixSocketAddress *sa =3D &s->addr->u.q_unix; + + if (sa->has_abstract && sa->abstract) { + abstract =3D ",abstract"; + if (sa->has_tight && sa->tight) { + tight =3D ",tight"; + } + } + + return g_strdup_printf("%sunix:%s%s%s%s", prefix, sa->path, + abstract, tight, s->is_listen ? ",server" : ""); break; + } case SOCKET_ADDRESS_TYPE_FD: return g_strdup_printf("%sfd:%s%s", prefix, s->addr->u.fd.str, s->is_listen ? ",server" : ""); --=20 2.28.0 From nobody Fri May 17 05:50:22 2024 Delivered-To: importer@patchew.org Authentication-Results: mx.zohomail.com; dkim=fail; spf=pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) smtp.mailfrom=qemu-devel-bounces+importer=patchew.org@nongnu.org; dmarc=fail(p=none dis=none) header.from=redhat.com ARC-Seal: i=1; a=rsa-sha256; t=1604412635; cv=none; d=zohomail.com; s=zohoarc; b=AuBlHIOuo+5cRAVyaiRY73c5NPssHAVODRtxmBwqrNsI3Rm2N4jagdqZZVwEX4E8XmVb4HvqIZnAFTMi/g7SIe86QQMDOL5M0SViKhFfbQ5bFs9APaAN+dmKDwVqrZgX7gNMXg8V5hpUCTOWdgnnezWd9Ry26Ei9bHsFcxXusvE= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1604412635; h=Content-Type:Content-Transfer-Encoding:Cc:Date:From:In-Reply-To:List-Subscribe:List-Post:List-Id:List-Archive:List-Help:List-Unsubscribe:MIME-Version:Message-ID:References:Sender:Subject:To; bh=TexKsOB/m5ww6iBN9k0jVR9Z5fLzd2GGDypDU4iooE4=; b=DLmaGx9gAAj+5sVK/OeHjvGVYFNyO9U511gJtIX86lBa+F4IXDKfZSZXsgrYVhmkIsL90LPLOYuKjaJMQdc6doK6JAfvmQoASFXITxSfTb+6aubJoRtkm2AVQF96TdzljaprZgTO6V1PUyWixG0R7zUKzGn4igbi3sQ/FuQEIec= ARC-Authentication-Results: i=1; mx.zohomail.com; dkim=fail; spf=pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) smtp.mailfrom=qemu-devel-bounces+importer=patchew.org@nongnu.org; dmarc=fail header.from= (p=none dis=none) header.from= Return-Path: Received: from lists.gnu.org (lists.gnu.org [209.51.188.17]) by mx.zohomail.com with SMTPS id 1604412635156934.0765755907679; Tue, 3 Nov 2020 06:10:35 -0800 (PST) Received: from localhost ([::1]:49876 helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1kZx18-00077D-5v for importer@patchew.org; Tue, 03 Nov 2020 09:10:34 -0500 Received: from eggs.gnu.org ([2001:470:142:3::10]:49296) by lists.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1kZwu5-00072E-4m for qemu-devel@nongnu.org; Tue, 03 Nov 2020 09:03:17 -0500 Received: from us-smtp-delivery-124.mimecast.com ([216.205.24.124]:28182) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_CBC_SHA1:256) (Exim 4.90_1) (envelope-from ) id 1kZwu3-0003RF-67 for qemu-devel@nongnu.org; Tue, 03 Nov 2020 09:03:16 -0500 Received: from mimecast-mx01.redhat.com (mimecast-mx01.redhat.com [209.132.183.4]) (Using TLS) by relay.mimecast.com with ESMTP id us-mta-41-IoKXVtzvNLqLMk9B4Uskkg-1; Tue, 03 Nov 2020 09:03:12 -0500 Received: from smtp.corp.redhat.com (int-mx01.intmail.prod.int.phx2.redhat.com [10.5.11.11]) (using TLSv1.2 with cipher AECDH-AES256-SHA (256/256 bits)) (No client certificate requested) by mimecast-mx01.redhat.com (Postfix) with ESMTPS id AEE7786ABD1 for ; Tue, 3 Nov 2020 14:03:11 +0000 (UTC) Received: from fedora.redhat.com (ovpn-115-87.ams2.redhat.com [10.36.115.87]) by smtp.corp.redhat.com (Postfix) with ESMTP id 9E3865B4D8; Tue, 3 Nov 2020 14:03:06 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=redhat.com; s=mimecast20190719; t=1604412194; 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=TexKsOB/m5ww6iBN9k0jVR9Z5fLzd2GGDypDU4iooE4=; b=EOUwzoTwYkYZ8gNsQfNH4R13kNVtAwbCIJjA/o58RHv283RAdj7W+okV3+Mu6Y0aJxtIwN n3SirGYJjnRr6J0pahexqST8a5015Bmhy2FhslQ97+v/xQ1MnR77dFDIB7MpJKoHZmf2v2 GxSOjK/yKfsfhOsAIK3yxLsPqg7IsnU= X-MC-Unique: IoKXVtzvNLqLMk9B4Uskkg-1 From: =?UTF-8?q?Daniel=20P=2E=20Berrang=C3=A9?= To: qemu-devel@nongnu.org Subject: [PULL 10/11] sockets: Bypass "replace empty @path" for abstract unix sockets Date: Tue, 3 Nov 2020 14:02:24 +0000 Message-Id: <20201103140225.496776-11-berrange@redhat.com> In-Reply-To: <20201103140225.496776-1-berrange@redhat.com> References: <20201103140225.496776-1-berrange@redhat.com> MIME-Version: 1.0 X-Scanned-By: MIMEDefang 2.79 on 10.5.11.11 Authentication-Results: relay.mimecast.com; auth=pass smtp.auth=CUSA124A263 smtp.mailfrom=berrange@redhat.com X-Mimecast-Spam-Score: 0 X-Mimecast-Originator: redhat.com Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: quoted-printable Received-SPF: pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) client-ip=209.51.188.17; envelope-from=qemu-devel-bounces+importer=patchew.org@nongnu.org; helo=lists.gnu.org; Received-SPF: pass client-ip=216.205.24.124; envelope-from=berrange@redhat.com; helo=us-smtp-delivery-124.mimecast.com X-detected-operating-system: by eggs.gnu.org: First seen = 2020/11/03 00:03:41 X-ACL-Warn: Detected OS = Linux 2.2.x-3.x [generic] [fuzzy] X-Spam_score_int: -20 X-Spam_score: -2.1 X-Spam_bar: -- X-Spam_report: (-2.1 / 5.0 requ) BAYES_00=-1.9, DKIMWL_WL_HIGH=-0.001, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, DKIM_VALID_EF=-0.1, RCVD_IN_DNSWL_NONE=-0.0001, RCVD_IN_MSPIKE_H4=0.001, RCVD_IN_MSPIKE_WL=0.001, SPF_HELO_NONE=0.001, SPF_PASS=-0.001 autolearn=ham autolearn_force=no X-Spam_action: no action X-BeenThere: qemu-devel@nongnu.org X-Mailman-Version: 2.1.23 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Cc: =?UTF-8?q?Daniel=20P=2E=20Berrang=C3=A9?= , Markus Armbruster , Gerd Hoffmann , =?UTF-8?q?Marc-Andr=C3=A9=20Lureau?= , Paolo Bonzini Errors-To: qemu-devel-bounces+importer=patchew.org@nongnu.org Sender: "Qemu-devel" X-ZohoMail-DKIM: fail (Header signature does not verify) From: Markus Armbruster unix_listen_saddr() replaces empty @path by unique value. It obtains the value by creating and deleting a unique temporary file with mkstemp(). This is racy, as the comment explains. It's also entirely undocumented as far as I can tell. Goes back to commit d247d25f18 "sockets: helper functions for qemu (Gerd Hoffman)", v0.10.0. Since abstract socket addresses have no connection with filesystem pathnames, making them up with mkstemp() seems inappropriate. Bypass the replacement of empty @path. Reviewed-by: Eric Blake Reviewed-by: Paolo Bonzini Signed-off-by: Markus Armbruster Signed-off-by: Daniel P. Berrang=C3=A9 --- util/qemu-sockets.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/util/qemu-sockets.c b/util/qemu-sockets.c index a578c434c2..671717499f 100644 --- a/util/qemu-sockets.c +++ b/util/qemu-sockets.c @@ -877,7 +877,7 @@ static int unix_listen_saddr(UnixSocketAddress *saddr, return -1; } =20 - if (saddr->path && saddr->path[0]) { + if (saddr->path[0] || saddr->abstract) { path =3D saddr->path; } else { const char *tmpdir =3D getenv("TMPDIR"); --=20 2.28.0 From nobody Fri May 17 05:50:22 2024 Delivered-To: importer@patchew.org Authentication-Results: mx.zohomail.com; dkim=fail; spf=pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) smtp.mailfrom=qemu-devel-bounces+importer=patchew.org@nongnu.org; dmarc=fail(p=none dis=none) header.from=redhat.com ARC-Seal: i=1; a=rsa-sha256; t=1604412821; cv=none; d=zohomail.com; s=zohoarc; b=AJAFkSg/Pfi5WemDawD2j6LbaAA/AjWVl1NWlpVBwTo871q3EH++UGUJENfHBZRZgtYJJIRcQ+rMlrEa4K8VNU8HytskJTitwjPXt1MgFW/spqSw7ct1RrqbZi5ZzR50dcEJ6yXMkAkJpkkcTEi+pWHtAii3tr4njOBgC+3PmH8= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1604412821; h=Content-Type:Content-Transfer-Encoding:Cc:Date:From:In-Reply-To:List-Subscribe:List-Post:List-Id:List-Archive:List-Help:List-Unsubscribe:MIME-Version:Message-ID:References:Sender:Subject:To; bh=1UxIMHJakD89O+OSTzMMGSCr4uHHMTmhUZvf/n8y34I=; b=eM0uictMOkBiCJbcfUoP/nIlaTu1zFXNG1RcrSS92d9CDr/OLxh+2LToQ+rElYS5ANeW4o9OTzyssURzSa4PPydt2GJahGO7M96nJaD3ZyV+Saya7ZJSahAtvuMbWZtW+WHELYPMBKiJ9VXzkAnh1wV02wjCKekYEhTZR63DI3w= ARC-Authentication-Results: i=1; mx.zohomail.com; dkim=fail; spf=pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) smtp.mailfrom=qemu-devel-bounces+importer=patchew.org@nongnu.org; dmarc=fail header.from= (p=none dis=none) header.from= Return-Path: Received: from lists.gnu.org (lists.gnu.org [209.51.188.17]) by mx.zohomail.com with SMTPS id 1604412821712247.0106691128741; Tue, 3 Nov 2020 06:13:41 -0800 (PST) Received: from localhost ([::1]:57362 helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1kZx48-0001vC-JQ for importer@patchew.org; Tue, 03 Nov 2020 09:13:40 -0500 Received: from eggs.gnu.org ([2001:470:142:3::10]:49352) by lists.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1kZwuK-00075j-GN for qemu-devel@nongnu.org; Tue, 03 Nov 2020 09:03:33 -0500 Received: from us-smtp-delivery-124.mimecast.com ([63.128.21.124]:39753) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_CBC_SHA1:256) (Exim 4.90_1) (envelope-from ) id 1kZwuD-0003U1-Ql for qemu-devel@nongnu.org; Tue, 03 Nov 2020 09:03:32 -0500 Received: from mimecast-mx01.redhat.com (mimecast-mx01.redhat.com [209.132.183.4]) (Using TLS) by relay.mimecast.com with ESMTP id us-mta-208-fe0jy6Y_MJWNQreaq6zooA-1; Tue, 03 Nov 2020 09:03:21 -0500 Received: from smtp.corp.redhat.com (int-mx01.intmail.prod.int.phx2.redhat.com [10.5.11.11]) (using TLSv1.2 with cipher AECDH-AES256-SHA (256/256 bits)) (No client certificate requested) by mimecast-mx01.redhat.com (Postfix) with ESMTPS id 31E1C8058C6 for ; Tue, 3 Nov 2020 14:03:20 +0000 (UTC) Received: from fedora.redhat.com (ovpn-115-87.ams2.redhat.com [10.36.115.87]) by smtp.corp.redhat.com (Postfix) with ESMTP id 136745B4C7; Tue, 3 Nov 2020 14:03:11 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=redhat.com; s=mimecast20190719; t=1604412203; 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=1UxIMHJakD89O+OSTzMMGSCr4uHHMTmhUZvf/n8y34I=; b=DKTz+PxUpVOQGAbzNEdPKlDn8Qs5f/LaWvtvN5JTr+arV55mJpCN1+jP087sijbDoyIIVK Ke98c39IatPaSbNveHwDxNdLURklgNDfGmej3eGIYQ83Qpi2qy0rB5SjWN1hrZuCAmRkJy X9c95OUuZei6wkXWHF/bRqyzLyWyiC4= X-MC-Unique: fe0jy6Y_MJWNQreaq6zooA-1 From: =?UTF-8?q?Daniel=20P=2E=20Berrang=C3=A9?= To: qemu-devel@nongnu.org Subject: [PULL 11/11] sockets: Make abstract UnixSocketAddress depend on CONFIG_LINUX Date: Tue, 3 Nov 2020 14:02:25 +0000 Message-Id: <20201103140225.496776-12-berrange@redhat.com> In-Reply-To: <20201103140225.496776-1-berrange@redhat.com> References: <20201103140225.496776-1-berrange@redhat.com> MIME-Version: 1.0 X-Scanned-By: MIMEDefang 2.79 on 10.5.11.11 Authentication-Results: relay.mimecast.com; auth=pass smtp.auth=CUSA124A263 smtp.mailfrom=berrange@redhat.com X-Mimecast-Spam-Score: 0 X-Mimecast-Originator: redhat.com Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: quoted-printable Received-SPF: pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) client-ip=209.51.188.17; envelope-from=qemu-devel-bounces+importer=patchew.org@nongnu.org; helo=lists.gnu.org; Received-SPF: pass client-ip=63.128.21.124; envelope-from=berrange@redhat.com; helo=us-smtp-delivery-124.mimecast.com X-detected-operating-system: by eggs.gnu.org: First seen = 2020/11/03 01:02:05 X-ACL-Warn: Detected OS = Linux 2.2.x-3.x [generic] [fuzzy] X-Spam_score_int: -20 X-Spam_score: -2.1 X-Spam_bar: -- X-Spam_report: (-2.1 / 5.0 requ) BAYES_00=-1.9, DKIMWL_WL_HIGH=-0.001, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, DKIM_VALID_EF=-0.1, RCVD_IN_DNSWL_NONE=-0.0001, RCVD_IN_MSPIKE_H5=0.001, RCVD_IN_MSPIKE_WL=0.001, SPF_HELO_NONE=0.001, SPF_PASS=-0.001 autolearn=ham autolearn_force=no X-Spam_action: no action X-BeenThere: qemu-devel@nongnu.org X-Mailman-Version: 2.1.23 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Cc: =?UTF-8?q?Daniel=20P=2E=20Berrang=C3=A9?= , Markus Armbruster , Gerd Hoffmann , =?UTF-8?q?Marc-Andr=C3=A9=20Lureau?= , Paolo Bonzini Errors-To: qemu-devel-bounces+importer=patchew.org@nongnu.org Sender: "Qemu-devel" X-ZohoMail-DKIM: fail (Header signature does not verify) From: Markus Armbruster The abstract socket namespace is a non-portable Linux extension. An attempt to use it elsewhere should fail with ENOENT (the abstract address looks like a "" pathname, which does not resolve). We report this failure like Failed to connect socket abc: No such file or directory Tolerable, although ENOTSUP would be better. However, introspection lies: it has @abstract regardless of host support. Easy enough to fix: since Linux provides them since 2.2, 'if': 'defined(CONFIG_LINUX)' should do. The above failure becomes Parameter 'backend.data.addr.data.abstract' is unexpected I consider this an improvement. Reviewed-by: Paolo Bonzini Signed-off-by: Markus Armbruster Signed-off-by: Daniel P. Berrang=C3=A9 --- chardev/char-socket.c | 6 ++++++ chardev/char.c | 2 ++ qapi/sockets.json | 14 ++++++++------ tests/test-util-sockets.c | 7 ++++--- util/qemu-sockets.c | 40 +++++++++++++++++++++++++++++---------- 5 files changed, 50 insertions(+), 19 deletions(-) diff --git a/chardev/char-socket.c b/chardev/char-socket.c index 27a2954f47..213a4c8dd0 100644 --- a/chardev/char-socket.c +++ b/chardev/char-socket.c @@ -447,12 +447,14 @@ static char *qemu_chr_socket_address(SocketChardev *s= , const char *prefix) const char *tight =3D "", *abstract =3D ""; UnixSocketAddress *sa =3D &s->addr->u.q_unix; =20 +#ifdef CONFIG_LINUX if (sa->has_abstract && sa->abstract) { abstract =3D ",abstract"; if (sa->has_tight && sa->tight) { tight =3D ",tight"; } } +#endif =20 return g_strdup_printf("%sunix:%s%s%s%s", prefix, sa->path, abstract, tight, @@ -1398,8 +1400,10 @@ static void qemu_chr_parse_socket(QemuOpts *opts, Ch= ardevBackend *backend, const char *host =3D qemu_opt_get(opts, "host"); const char *port =3D qemu_opt_get(opts, "port"); const char *fd =3D qemu_opt_get(opts, "fd"); +#ifdef CONFIG_LINUX bool tight =3D qemu_opt_get_bool(opts, "tight", true); bool abstract =3D qemu_opt_get_bool(opts, "abstract", false); +#endif SocketAddressLegacy *addr; ChardevSocket *sock; =20 @@ -1451,10 +1455,12 @@ static void qemu_chr_parse_socket(QemuOpts *opts, C= hardevBackend *backend, addr->type =3D SOCKET_ADDRESS_LEGACY_KIND_UNIX; q_unix =3D addr->u.q_unix.data =3D g_new0(UnixSocketAddress, 1); q_unix->path =3D g_strdup(path); +#ifdef CONFIG_LINUX q_unix->has_tight =3D true; q_unix->tight =3D tight; q_unix->has_abstract =3D true; q_unix->abstract =3D abstract; +#endif } else if (host) { addr->type =3D SOCKET_ADDRESS_LEGACY_KIND_INET; addr->u.inet.data =3D g_new(InetSocketAddress, 1); diff --git a/chardev/char.c b/chardev/char.c index 78553125d3..aa4282164a 100644 --- a/chardev/char.c +++ b/chardev/char.c @@ -928,6 +928,7 @@ QemuOptsList qemu_chardev_opts =3D { },{ .name =3D "logappend", .type =3D QEMU_OPT_BOOL, +#ifdef CONFIG_LINUX },{ .name =3D "tight", .type =3D QEMU_OPT_BOOL, @@ -935,6 +936,7 @@ QemuOptsList qemu_chardev_opts =3D { },{ .name =3D "abstract", .type =3D QEMU_OPT_BOOL, +#endif }, { /* end of list */ } }, diff --git a/qapi/sockets.json b/qapi/sockets.json index c0c640a5b0..2e83452797 100644 --- a/qapi/sockets.json +++ b/qapi/sockets.json @@ -74,18 +74,20 @@ # Captures a socket address in the local ("Unix socket") namespace. # # @path: filesystem path to use -# @tight: pass a socket address length confined to the minimum length of t= he -# abstract string, rather than the full sockaddr_un record length -# (only matters for abstract sockets, default true). (Since 5.1) -# @abstract: whether this is an abstract address, default false. (Since 5.= 1) +# @abstract: if true, this is a Linux abstract socket address. @path +# will be prefixed by a null byte, and optionally padded +# with null bytes. Defaults to false. (Since 5.1) +# @tight: if false, pad an abstract socket address with enough null +# bytes to make it fill struct sockaddr_un member sun_path. +# Defaults to true. (Since 5.1) # # Since: 1.3 ## { 'struct': 'UnixSocketAddress', 'data': { 'path': 'str', - '*tight': 'bool', - '*abstract': 'bool' } } + '*abstract': { 'type': 'bool', 'if': 'defined(CONFIG_LINUX)' }, + '*tight': { 'type': 'bool', 'if': 'defined(CONFIG_LINUX)' } } } =20 ## # @VsockSocketAddress: diff --git a/tests/test-util-sockets.c b/tests/test-util-sockets.c index 7ecf95579b..67486055ed 100644 --- a/tests/test-util-sockets.c +++ b/tests/test-util-sockets.c @@ -229,7 +229,7 @@ static void test_socket_fd_pass_num_nocli(void) } #endif =20 -#ifdef __linux__ +#ifdef CONFIG_LINUX =20 #define ABSTRACT_SOCKET_VARIANTS 3 =20 @@ -326,7 +326,8 @@ static void test_socket_unix_abstract(void) =20 g_free(addr.u.q_unix.path); } -#endif + +#endif /* CONFIG_LINUX */ =20 int main(int argc, char **argv) { @@ -368,7 +369,7 @@ int main(int argc, char **argv) #endif } =20 -#ifdef __linux__ +#ifdef CONFIG_LINUX g_test_add_func("/util/socket/unix-abstract", test_socket_unix_abstract); #endif diff --git a/util/qemu-sockets.c b/util/qemu-sockets.c index 671717499f..8af0278f15 100644 --- a/util/qemu-sockets.c +++ b/util/qemu-sockets.c @@ -860,10 +860,29 @@ static int vsock_parse(VsockSocketAddress *addr, cons= t char *str, =20 #ifndef _WIN32 =20 +static bool saddr_is_abstract(UnixSocketAddress *saddr) +{ +#ifdef CONFIG_LINUX + return saddr->abstract; +#else + return false; +#endif +} + +static bool saddr_is_tight(UnixSocketAddress *saddr) +{ +#ifdef CONFIG_LINUX + return !saddr->has_tight || saddr->tight; +#else + return false; +#endif +} + static int unix_listen_saddr(UnixSocketAddress *saddr, int num, Error **errp) { + bool abstract =3D saddr_is_abstract(saddr); struct sockaddr_un un; int sock, fd; char *pathbuf =3D NULL; @@ -877,7 +896,7 @@ static int unix_listen_saddr(UnixSocketAddress *saddr, return -1; } =20 - if (saddr->path[0] || saddr->abstract) { + if (saddr->path[0] || abstract) { path =3D saddr->path; } else { const char *tmpdir =3D getenv("TMPDIR"); @@ -887,10 +906,10 @@ static int unix_listen_saddr(UnixSocketAddress *saddr, =20 pathlen =3D strlen(path); if (pathlen > sizeof(un.sun_path) || - (saddr->abstract && pathlen > (sizeof(un.sun_path) - 1))) { + (abstract && pathlen > (sizeof(un.sun_path) - 1))) { error_setg(errp, "UNIX socket path '%s' is too long", path); error_append_hint(errp, "Path must be less than %zu bytes\n", - saddr->abstract ? sizeof(un.sun_path) - 1 : + abstract ? sizeof(un.sun_path) - 1 : sizeof(un.sun_path)); goto err; } @@ -912,7 +931,7 @@ static int unix_listen_saddr(UnixSocketAddress *saddr, close(fd); } =20 - if (!saddr->abstract && unlink(path) < 0 && errno !=3D ENOENT) { + if (!abstract && unlink(path) < 0 && errno !=3D ENOENT) { error_setg_errno(errp, errno, "Failed to unlink socket %s", path); goto err; @@ -922,10 +941,10 @@ static int unix_listen_saddr(UnixSocketAddress *saddr, un.sun_family =3D AF_UNIX; addrlen =3D sizeof(un); =20 - if (saddr->abstract) { + if (abstract) { un.sun_path[0] =3D '\0'; memcpy(&un.sun_path[1], path, pathlen); - if (!saddr->has_tight || saddr->tight) { + if (saddr_is_tight(saddr)) { addrlen =3D offsetof(struct sockaddr_un, sun_path) + 1 + pathl= en; } } else { @@ -952,6 +971,7 @@ err: =20 static int unix_connect_saddr(UnixSocketAddress *saddr, Error **errp) { + bool abstract =3D saddr_is_abstract(saddr); struct sockaddr_un un; int sock, rc; size_t pathlen; @@ -970,10 +990,10 @@ static int unix_connect_saddr(UnixSocketAddress *sadd= r, Error **errp) =20 pathlen =3D strlen(saddr->path); if (pathlen > sizeof(un.sun_path) || - (saddr->abstract && pathlen > (sizeof(un.sun_path) - 1))) { + (abstract && pathlen > (sizeof(un.sun_path) - 1))) { error_setg(errp, "UNIX socket path '%s' is too long", saddr->path); error_append_hint(errp, "Path must be less than %zu bytes\n", - saddr->abstract ? sizeof(un.sun_path) - 1 : + abstract ? sizeof(un.sun_path) - 1 : sizeof(un.sun_path)); goto err; } @@ -982,10 +1002,10 @@ static int unix_connect_saddr(UnixSocketAddress *sad= dr, Error **errp) un.sun_family =3D AF_UNIX; addrlen =3D sizeof(un); =20 - if (saddr->abstract) { + if (abstract) { un.sun_path[0] =3D '\0'; memcpy(&un.sun_path[1], saddr->path, pathlen); - if (!saddr->has_tight || saddr->tight) { + if (saddr_is_tight(saddr)) { addrlen =3D offsetof(struct sockaddr_un, sun_path) + 1 + pathl= en; } } else { --=20 2.28.0