From nobody Mon May 13 13:00:14 2024 Delivered-To: importer@patchew.org Received-SPF: pass (zohomail.com: domain of redhat.com designates 170.10.133.124 as permitted sender) client-ip=170.10.133.124; envelope-from=libvir-list-bounces@redhat.com; helo=us-smtp-delivery-124.mimecast.com; Authentication-Results: mx.zohomail.com; dkim=pass; spf=pass (zohomail.com: domain of redhat.com designates 170.10.133.124 as permitted sender) smtp.mailfrom=libvir-list-bounces@redhat.com; dmarc=pass(p=none dis=none) header.from=redhat.com ARC-Seal: i=1; a=rsa-sha256; t=1649423585; cv=none; d=zohomail.com; s=zohoarc; b=Hj7WE+9UPtWYk488WNjq9uaojvt1M+asINTIOBh2sTo4JZ6SGeDyUMRO/Bw/M3RuBmBMb1jJAPkanQ6Jl072hIZgB1g/rRb5R+9zoMbVH6mmE19DPr2y8pW7BYmofSX2sdH0+5+srkN7aUgbAr4EX8ghLvYc4uu3dhWvEtGn6Xo= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1649423585; 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=yN9Ec9BCEHsT67Otv9CbofFWz3m6K0M/ixGvEuQdXPE=; b=b4fL52ftwGrtJCjPvKOcwbWTIwsebq64D91+OfpJTPCigF5cMzFFeDK4GNsHfBhdCo/fKeCJSsdscw8sC/Br7p4exHCO4WD7HSbNar90J9UN10UzzeTpcPHEcFVvvHsJMWJwKcK86scO2mpp4qVQ9JaOQ41j5vo9w22VxF5jcVE= ARC-Authentication-Results: i=1; mx.zohomail.com; dkim=pass; spf=pass (zohomail.com: domain of redhat.com designates 170.10.133.124 as permitted sender) smtp.mailfrom=libvir-list-bounces@redhat.com; dmarc=pass header.from= (p=none dis=none) Return-Path: Received: from us-smtp-delivery-124.mimecast.com (us-smtp-delivery-124.mimecast.com [170.10.133.124]) by mx.zohomail.com with SMTPS id 164942358505392.3496204255764; Fri, 8 Apr 2022 06:13:05 -0700 (PDT) Received: from mimecast-mx02.redhat.com (mx3-rdu2.redhat.com [66.187.233.73]) by relay.mimecast.com with ESMTP with STARTTLS (version=TLSv1.2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id us-mta-350-YOUl3cJyPR6aFNBCxRklvg-1; Fri, 08 Apr 2022 09:12:59 -0400 Received: from smtp.corp.redhat.com (int-mx10.intmail.prod.int.rdu2.redhat.com [10.11.54.10]) (using TLSv1.2 with cipher AECDH-AES256-SHA (256/256 bits)) (No client certificate requested) by mimecast-mx02.redhat.com (Postfix) with ESMTPS id 2650128EC13F; Fri, 8 Apr 2022 13:12:54 +0000 (UTC) Received: from mm-prod-listman-01.mail-001.prod.us-east-1.aws.redhat.com (mm-prod-listman-01.mail-001.prod.us-east-1.aws.redhat.com [10.30.29.100]) by smtp.corp.redhat.com (Postfix) with ESMTP id 10CEA40316C; Fri, 8 Apr 2022 13:12:53 +0000 (UTC) Received: from mm-prod-listman-01.mail-001.prod.us-east-1.aws.redhat.com (localhost [IPv6:::1]) by mm-prod-listman-01.mail-001.prod.us-east-1.aws.redhat.com (Postfix) with ESMTP id 0A30A194034B; Fri, 8 Apr 2022 13:12:52 +0000 (UTC) Received: from smtp.corp.redhat.com (int-mx10.intmail.prod.int.rdu2.redhat.com [10.11.54.10]) by mm-prod-listman-01.mail-001.prod.us-east-1.aws.redhat.com (Postfix) with ESMTP id 48AB21940341 for ; Fri, 8 Apr 2022 13:12:50 +0000 (UTC) Received: by smtp.corp.redhat.com (Postfix) id 389CF416156; Fri, 8 Apr 2022 13:12:50 +0000 (UTC) Received: from work.redhat.com (unknown [10.39.193.206]) by smtp.corp.redhat.com (Postfix) with ESMTP id BE8C3402D8F; Fri, 8 Apr 2022 13:12:49 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=redhat.com; s=mimecast20190719; t=1649423584; h=from:from:sender:sender: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:list-id:list-help: list-unsubscribe:list-subscribe:list-post; bh=yN9Ec9BCEHsT67Otv9CbofFWz3m6K0M/ixGvEuQdXPE=; b=eBu7I+QKHDsPLRvF5gzzb3h7cQQh2nJYlncQ7krvQEmvn3nid560EFvQYdoFZ1VpsWVzIU 6zBs1fRdimj2EGkRypuSl33SWs6DG3OAcJgAzIHzyUsCIl4U/vhrWn4LMYhfWF/v+qtZKf 3zV3w2dbjC8uap6APHjK9u9UwOTr2t0= X-MC-Unique: YOUl3cJyPR6aFNBCxRklvg-1 X-Original-To: libvir-list@listman.corp.redhat.com From: Tim Wiederhake To: libvir-list@redhat.com Subject: [libvirt PATCH 1/5] virNWFilterObjListFree: Prevent null pointer derefernce Date: Fri, 8 Apr 2022 15:12:44 +0200 Message-Id: <20220408131248.48609-2-twiederh@redhat.com> In-Reply-To: <20220408131248.48609-1-twiederh@redhat.com> References: <20220408131248.48609-1-twiederh@redhat.com> MIME-Version: 1.0 X-Scanned-By: MIMEDefang 2.85 on 10.11.54.10 X-BeenThere: libvir-list@redhat.com X-Mailman-Version: 2.1.29 Precedence: list List-Id: Development discussions about the libvirt library & tools List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Cc: Tim Wiederhake Errors-To: libvir-list-bounces@redhat.com Sender: "libvir-list" X-Scanned-By: MIMEDefang 2.85 on 10.11.54.10 Authentication-Results: relay.mimecast.com; auth=pass smtp.auth=CUSA124A263 smtp.mailfrom=libvir-list-bounces@redhat.com X-Mimecast-Spam-Score: 0 X-Mimecast-Originator: redhat.com Content-Transfer-Encoding: quoted-printable X-ZohoMail-DKIM: pass (identity @redhat.com) X-ZM-MESSAGEID: 1649423586342100003 Content-Type: text/plain; charset="utf-8"; x-default="true" Allow virNWFilterObjListFree to be called with a NULL argument. This enables a later patch to use virNWFilterObjListFree as a cleanup function safely, as it is a no-op if virNWFilterObj was not yet initialized. Signed-off-by: Tim Wiederhake Reviewed-by: Michal Privoznik --- src/conf/virnwfilterobj.c | 3 +++ 1 file changed, 3 insertions(+) diff --git a/src/conf/virnwfilterobj.c b/src/conf/virnwfilterobj.c index e9bb2b1811..f9c1b049d5 100644 --- a/src/conf/virnwfilterobj.c +++ b/src/conf/virnwfilterobj.c @@ -110,6 +110,9 @@ virNWFilterObjFree(virNWFilterObj *obj) void virNWFilterObjListFree(virNWFilterObjList *nwfilters) { + if (!nwfilters) + return; + g_hash_table_unref(nwfilters->objs); g_hash_table_unref(nwfilters->objsName); g_free(nwfilters); --=20 2.31.1 From nobody Mon May 13 13:00:14 2024 Delivered-To: importer@patchew.org Received-SPF: pass (zohomail.com: domain of redhat.com designates 170.10.129.124 as permitted sender) client-ip=170.10.129.124; envelope-from=libvir-list-bounces@redhat.com; helo=us-smtp-delivery-124.mimecast.com; Authentication-Results: mx.zohomail.com; dkim=pass; spf=pass (zohomail.com: domain of redhat.com designates 170.10.129.124 as permitted sender) smtp.mailfrom=libvir-list-bounces@redhat.com; dmarc=pass(p=none dis=none) header.from=redhat.com ARC-Seal: i=1; a=rsa-sha256; t=1649423585; cv=none; d=zohomail.com; s=zohoarc; b=ZOQszP7MbJ/aeLqJCNQM1s2vFpCrk6gX2jRtFkLFpQ7V9CdcoJTne/cqNzHECukleAYuWfO6w8NWxCONd1S8l9UWo9bRwUa/ow+euAE3IgHOw9HTO4J1JRVEPbfYH3QGFMFGDIG3wkG/u0OWboxTJTxJIRl4sJCkGNqr6PbVYEo= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1649423585; 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=OcXSOMEogqTHz6iKdzYs7oCcAo2XVsAVzFgYZJzu8kA=; b=hi67Gf9Xr9nRwuSVuFavGcPLPlUqkn80c5r/oZ6+Ojj62TX3Y1mHnp+FgaNFMfSnOuk32XYu0I1kRZa9e3YWG/Q4HsjoKrFCj5wnudbl6kPhjz4xOTZKSatKzwJ9fX1Q1/xtrwTStWHLcye5NLniparjGg4ppq24vx5Tb8JWhkI= ARC-Authentication-Results: i=1; mx.zohomail.com; dkim=pass; spf=pass (zohomail.com: domain of redhat.com designates 170.10.129.124 as permitted sender) smtp.mailfrom=libvir-list-bounces@redhat.com; dmarc=pass header.from= (p=none dis=none) Return-Path: Received: from us-smtp-delivery-124.mimecast.com (us-smtp-delivery-124.mimecast.com [170.10.129.124]) by mx.zohomail.com with SMTPS id 1649423585018957.2545573709339; Fri, 8 Apr 2022 06:13:05 -0700 (PDT) Received: from mimecast-mx02.redhat.com (mimecast-mx02.redhat.com [66.187.233.88]) by relay.mimecast.com with ESMTP with STARTTLS (version=TLSv1.2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id us-mta-381-v621KdVgObqIq4qAEBS61A-1; Fri, 08 Apr 2022 09:12:59 -0400 Received: from smtp.corp.redhat.com (int-mx02.intmail.prod.int.rdu2.redhat.com [10.11.54.2]) (using TLSv1.2 with cipher AECDH-AES256-SHA (256/256 bits)) (No client certificate requested) by mimecast-mx02.redhat.com (Postfix) with ESMTPS id 05895811E80; Fri, 8 Apr 2022 13:12:54 +0000 (UTC) Received: from mm-prod-listman-01.mail-001.prod.us-east-1.aws.redhat.com (mm-prod-listman-01.mail-001.prod.us-east-1.aws.redhat.com [10.30.29.100]) by smtp.corp.redhat.com (Postfix) with ESMTP id 5AB3640D2962; Fri, 8 Apr 2022 13:12:52 +0000 (UTC) Received: from mm-prod-listman-01.mail-001.prod.us-east-1.aws.redhat.com (localhost [IPv6:::1]) by mm-prod-listman-01.mail-001.prod.us-east-1.aws.redhat.com (Postfix) with ESMTP id B76571940353; Fri, 8 Apr 2022 13:12:51 +0000 (UTC) Received: from smtp.corp.redhat.com (int-mx10.intmail.prod.int.rdu2.redhat.com [10.11.54.10]) by mm-prod-listman-01.mail-001.prod.us-east-1.aws.redhat.com (Postfix) with ESMTP id EE18B1940353 for ; Fri, 8 Apr 2022 13:12:50 +0000 (UTC) Received: by smtp.corp.redhat.com (Postfix) id DF598402D8F; Fri, 8 Apr 2022 13:12:50 +0000 (UTC) Received: from work.redhat.com (unknown [10.39.193.206]) by smtp.corp.redhat.com (Postfix) with ESMTP id 70B48403367; Fri, 8 Apr 2022 13:12:50 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=redhat.com; s=mimecast20190719; t=1649423583; h=from:from:sender:sender: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:list-id:list-help: list-unsubscribe:list-subscribe:list-post; bh=OcXSOMEogqTHz6iKdzYs7oCcAo2XVsAVzFgYZJzu8kA=; b=RM1Tvxi1izo5JnalRbVoj46/3vMzfeebleGi82gb/1i2JcZHqpGY/nNpodXsmbj01ptY+j c8pW+GuZagHgrHQIfdXZJUPRaiwM2Nd9xNf8TM42OlXDJHSnL566p/R3U3EOs4IicsEhAR s+xPv7yt80uRzbaMJKrIt634zB6sU1o= X-MC-Unique: v621KdVgObqIq4qAEBS61A-1 X-Original-To: libvir-list@listman.corp.redhat.com From: Tim Wiederhake To: libvir-list@redhat.com Subject: [libvirt PATCH 2/5] virNWFilterSnoopState: Prevent mutex leak Date: Fri, 8 Apr 2022 15:12:45 +0200 Message-Id: <20220408131248.48609-3-twiederh@redhat.com> In-Reply-To: <20220408131248.48609-1-twiederh@redhat.com> References: <20220408131248.48609-1-twiederh@redhat.com> MIME-Version: 1.0 X-Scanned-By: MIMEDefang 2.85 on 10.11.54.10 X-BeenThere: libvir-list@redhat.com X-Mailman-Version: 2.1.29 Precedence: list List-Id: Development discussions about the libvirt library & tools List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Cc: Tim Wiederhake Errors-To: libvir-list-bounces@redhat.com Sender: "libvir-list" X-Scanned-By: MIMEDefang 2.84 on 10.11.54.2 Authentication-Results: relay.mimecast.com; auth=pass smtp.auth=CUSA124A263 smtp.mailfrom=libvir-list-bounces@redhat.com X-Mimecast-Spam-Score: 0 X-Mimecast-Originator: redhat.com Content-Transfer-Encoding: quoted-printable X-ZohoMail-DKIM: pass (identity @redhat.com) X-ZM-MESSAGEID: 1649423586361100005 Content-Type: text/plain; charset="utf-8"; x-default="true" virNWFilterDHCPSnoopShutdown would never destroy the mutexes created in virNWFilterDHCPSnoopInit. Additionally, if in virNWFilterDHCPSnoopInit the call to virMutexInitRecursive succeeds and the call to virMutexInit fails, this would lead to either virNWFilterSnoopState.snoopLock being initialized twice or virNWFilterSnoopState.activeLock destroyed without being initialized first. This enables a later patch to use virNWFilterDHCPSnoopShutdown as a cleanup function safely, as it is a no-op if virNWFilterSnoopState was not yet initialized. Signed-off-by: Tim Wiederhake Reviewed-by: Michal Privoznik --- src/nwfilter/nwfilter_dhcpsnoop.c | 15 +++++++++++++-- 1 file changed, 13 insertions(+), 2 deletions(-) diff --git a/src/nwfilter/nwfilter_dhcpsnoop.c b/src/nwfilter/nwfilter_dhcp= snoop.c index 852840c209..d26e787453 100644 --- a/src/nwfilter/nwfilter_dhcpsnoop.c +++ b/src/nwfilter/nwfilter_dhcpsnoop.c @@ -1860,10 +1860,14 @@ virNWFilterDHCPSnoopInit(void) =20 VIR_DEBUG("Initializing DHCP snooping"); =20 - if (virMutexInitRecursive(&virNWFilterSnoopState.snoopLock) < 0 || - virMutexInit(&virNWFilterSnoopState.activeLock) < 0) + if (virMutexInitRecursive(&virNWFilterSnoopState.snoopLock) < 0) return -1; =20 + if (virMutexInit(&virNWFilterSnoopState.activeLock) < 0) { + virMutexDestroy(&virNWFilterSnoopState.snoopLock); + return -1; + } + virNWFilterSnoopState.ifnameToKey =3D virHashNew(NULL); virNWFilterSnoopState.active =3D virHashNew(NULL); virNWFilterSnoopState.snoopReqs =3D @@ -1938,6 +1942,9 @@ virNWFilterDHCPSnoopEnd(const char *ifname) void virNWFilterDHCPSnoopShutdown(void) { + if (!virNWFilterSnoopState.snoopReqs) + return; + virNWFilterSnoopEndThreads(); virNWFilterSnoopJoinThreads(); =20 @@ -1947,9 +1954,13 @@ virNWFilterDHCPSnoopShutdown(void) g_clear_pointer(&virNWFilterSnoopState.snoopReqs, g_hash_table_unr= ef); } =20 + virMutexDestroy(&virNWFilterSnoopState.snoopLock); + VIR_WITH_MUTEX_LOCK_GUARD(&virNWFilterSnoopState.activeLock) { g_clear_pointer(&virNWFilterSnoopState.active, g_hash_table_unref); } + + virMutexDestroy(&virNWFilterSnoopState.activeLock); } =20 #else /* WITH_LIBPCAP */ --=20 2.31.1 From nobody Mon May 13 13:00:14 2024 Delivered-To: importer@patchew.org Received-SPF: pass (zohomail.com: domain of redhat.com designates 170.10.129.124 as permitted sender) client-ip=170.10.129.124; envelope-from=libvir-list-bounces@redhat.com; helo=us-smtp-delivery-124.mimecast.com; Authentication-Results: mx.zohomail.com; dkim=pass; spf=pass (zohomail.com: domain of redhat.com designates 170.10.129.124 as permitted sender) smtp.mailfrom=libvir-list-bounces@redhat.com; dmarc=pass(p=none dis=none) header.from=redhat.com ARC-Seal: i=1; a=rsa-sha256; t=1649423583; cv=none; d=zohomail.com; s=zohoarc; b=JN0q8P52/4Bhz8dQ4E91eEAeG1StK0YIQhVDuX7IQHLTyn01OS6aOafz2I26x7X2OkHHXL2f8PUyagOw171j3lUYBtvzj46jXpszmj2q7JsekYQ+8n051I9zY2588eJyjMHiscsjUjirhHwqkjL3McQXEny8VMFvKPdXfDxn+Jc= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1649423583; 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=N57m8FMubx3+0iuI0SjvKFNwic+HZqn5Ko/UwULpwjQ=; b=FaUen4m7a7rc08DMLYUqHVnP/yOdweto0HfYL2AYhOjniROywf1dMKs4Y0u/PtLHe1JGxAC6NBkLuCGZSJHB8nBzATmLwZ+wrb0SV4xm1kBsO56J+wS4YazMqR2Ry0n/Vded15F5BLBWBuyUYFK8obxcDPgIWLeBPcMdHkfK/vM= ARC-Authentication-Results: i=1; mx.zohomail.com; dkim=pass; spf=pass (zohomail.com: domain of redhat.com designates 170.10.129.124 as permitted sender) smtp.mailfrom=libvir-list-bounces@redhat.com; dmarc=pass header.from= (p=none dis=none) Return-Path: Received: from us-smtp-delivery-124.mimecast.com (us-smtp-delivery-124.mimecast.com [170.10.129.124]) by mx.zohomail.com with SMTPS id 1649423583136107.76191822697695; Fri, 8 Apr 2022 06:13:03 -0700 (PDT) Received: from mimecast-mx02.redhat.com (mx3-rdu2.redhat.com [66.187.233.73]) by relay.mimecast.com with ESMTP with STARTTLS (version=TLSv1.2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id us-mta-227-m01nUlL4M4ywMrtn89VJfw-1; Fri, 08 Apr 2022 09:13:00 -0400 Received: from smtp.corp.redhat.com (int-mx07.intmail.prod.int.rdu2.redhat.com [10.11.54.7]) (using TLSv1.2 with cipher AECDH-AES256-SHA (256/256 bits)) (No client certificate requested) by mimecast-mx02.redhat.com (Postfix) with ESMTPS id 738C91C0906A; Fri, 8 Apr 2022 13:12:55 +0000 (UTC) Received: from mm-prod-listman-01.mail-001.prod.us-east-1.aws.redhat.com (mm-prod-listman-01.mail-001.prod.us-east-1.aws.redhat.com [10.30.29.100]) by smtp.corp.redhat.com (Postfix) with ESMTP id 61728145B97F; Fri, 8 Apr 2022 13:12:55 +0000 (UTC) Received: from mm-prod-listman-01.mail-001.prod.us-east-1.aws.redhat.com (localhost [IPv6:::1]) by mm-prod-listman-01.mail-001.prod.us-east-1.aws.redhat.com (Postfix) with ESMTP id 64DD4193F6DB; Fri, 8 Apr 2022 13:12:53 +0000 (UTC) Received: from smtp.corp.redhat.com (int-mx10.intmail.prod.int.rdu2.redhat.com [10.11.54.10]) by mm-prod-listman-01.mail-001.prod.us-east-1.aws.redhat.com (Postfix) with ESMTP id A50D41940341 for ; Fri, 8 Apr 2022 13:12:51 +0000 (UTC) Received: by smtp.corp.redhat.com (Postfix) id 91FB541636A; Fri, 8 Apr 2022 13:12:51 +0000 (UTC) Received: from work.redhat.com (unknown [10.39.193.206]) by smtp.corp.redhat.com (Postfix) with ESMTP id 2326B402D8F; Fri, 8 Apr 2022 13:12:51 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=redhat.com; s=mimecast20190719; t=1649423582; h=from:from:sender:sender: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:list-id:list-help: list-unsubscribe:list-subscribe:list-post; bh=N57m8FMubx3+0iuI0SjvKFNwic+HZqn5Ko/UwULpwjQ=; b=jJPbdjKNzkP7Z0ZXZsBKvy8uEYCQyU/GrMrNsj42/90Sa1TjrN6Pw9ctsyhH/pXD6MXS0+ X+M691t7ctYPn2jC5n3P+Q09Z6Wx6y14L73zXnLqZBOR0IS9BeG375X4CEBCAFU8vEWlEH WAieMLHDVK+JSRXThO1JZIDfB1e1D9g= X-MC-Unique: m01nUlL4M4ywMrtn89VJfw-1 X-Original-To: libvir-list@listman.corp.redhat.com From: Tim Wiederhake To: libvir-list@redhat.com Subject: [libvirt PATCH 3/5] nwfilterDriverRemoveDBusMatches: Prevent unsubscribing from null id Date: Fri, 8 Apr 2022 15:12:46 +0200 Message-Id: <20220408131248.48609-4-twiederh@redhat.com> In-Reply-To: <20220408131248.48609-1-twiederh@redhat.com> References: <20220408131248.48609-1-twiederh@redhat.com> MIME-Version: 1.0 X-Scanned-By: MIMEDefang 2.85 on 10.11.54.10 X-BeenThere: libvir-list@redhat.com X-Mailman-Version: 2.1.29 Precedence: list List-Id: Development discussions about the libvirt library & tools List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Cc: Tim Wiederhake Errors-To: libvir-list-bounces@redhat.com Sender: "libvir-list" X-Scanned-By: MIMEDefang 2.85 on 10.11.54.7 Authentication-Results: relay.mimecast.com; auth=pass smtp.auth=CUSA124A263 smtp.mailfrom=libvir-list-bounces@redhat.com X-Mimecast-Spam-Score: 0 X-Mimecast-Originator: redhat.com Content-Transfer-Encoding: quoted-printable X-ZohoMail-DKIM: pass (identity @redhat.com) X-ZM-MESSAGEID: 1649423584587100001 Content-Type: text/plain; charset="utf-8"; x-default="true" Allow nwfilterDriverRemoveDBusMatches to be called without nwfilterDriverInstallDBusMatches being called previously. This enables a later patch to use nwfilterDriverRemoveDBusMatches as a cleanup function safely. Signed-off-by: Tim Wiederhake Reviewed-by: Michal Privoznik --- src/nwfilter/nwfilter_driver.c | 13 ++++++++++--- 1 file changed, 10 insertions(+), 3 deletions(-) diff --git a/src/nwfilter/nwfilter_driver.c b/src/nwfilter/nwfilter_driver.c index 1f7d40e1b0..f89b5b8757 100644 --- a/src/nwfilter/nwfilter_driver.c +++ b/src/nwfilter/nwfilter_driver.c @@ -77,12 +77,19 @@ static unsigned int reloadID; static void nwfilterDriverRemoveDBusMatches(void) { - GDBusConnection *sysbus; + GDBusConnection *sysbus =3D virGDBusGetSystemBus(); =20 - sysbus =3D virGDBusGetSystemBus(); - if (sysbus) { + if (!sysbus) + return; + + if (restartID !=3D 0) { g_dbus_connection_signal_unsubscribe(sysbus, restartID); + restartID =3D 0; + } + + if (reloadID !=3D 0) { g_dbus_connection_signal_unsubscribe(sysbus, reloadID); + reloadID =3D 0; } } =20 --=20 2.31.1 From nobody Mon May 13 13:00:14 2024 Delivered-To: importer@patchew.org Received-SPF: pass (zohomail.com: domain of redhat.com designates 170.10.133.124 as permitted sender) client-ip=170.10.133.124; envelope-from=libvir-list-bounces@redhat.com; helo=us-smtp-delivery-124.mimecast.com; Authentication-Results: mx.zohomail.com; dkim=pass; spf=pass (zohomail.com: domain of redhat.com designates 170.10.133.124 as permitted sender) smtp.mailfrom=libvir-list-bounces@redhat.com; dmarc=pass(p=none dis=none) header.from=redhat.com ARC-Seal: i=1; a=rsa-sha256; t=1649423588; cv=none; d=zohomail.com; s=zohoarc; b=eDBnvTasq+DeWYlTLq4WCBFZQ4Hl8EsW4N+Q1lQz9EGP1YtUj73fHFV37dRA0TiyK/6e4LvJSPqvQBWl6l1se/FEWeSaDtlTg1Em+AZAjxnQixwMVtCIq5ONfA6X3dJN7nadEU9tyIfoNFU/OptXRIa8J1T9bJuxwN8bs11+nnY= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1649423588; 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=/0Rz5XSi8NpKctr8yB8glV4dbx53e0pD2A3tzpS9AKw=; b=NxodEVYMKtQIvmC/77nowY/qbJrAmgJsCMd9LIl6L7yEj7jId4g31TJliCI6f2HqgwyXxwx6OUARyF6Y7/jcPkZ3xdBqW+zL7vIAiQ9nWJiqn72xqLrZe9+I5BD6BxIJdKFEkkJHEkd44BiO5o436iMnZjMaQZEzy6FqAEiCWls= ARC-Authentication-Results: i=1; mx.zohomail.com; dkim=pass; spf=pass (zohomail.com: domain of redhat.com designates 170.10.133.124 as permitted sender) smtp.mailfrom=libvir-list-bounces@redhat.com; dmarc=pass header.from= (p=none dis=none) Return-Path: Received: from us-smtp-delivery-124.mimecast.com (us-smtp-delivery-124.mimecast.com [170.10.133.124]) by mx.zohomail.com with SMTPS id 1649423588191538.5299427456735; Fri, 8 Apr 2022 06:13:08 -0700 (PDT) Received: from mimecast-mx02.redhat.com (mimecast-mx02.redhat.com [66.187.233.88]) by relay.mimecast.com with ESMTP with STARTTLS (version=TLSv1.2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id us-mta-91-nlR3qhbDPOCn5WcYokc7iw-1; Fri, 08 Apr 2022 09:13:00 -0400 Received: from smtp.corp.redhat.com (int-mx10.intmail.prod.int.rdu2.redhat.com [10.11.54.10]) (using TLSv1.2 with cipher AECDH-AES256-SHA (256/256 bits)) (No client certificate requested) by mimecast-mx02.redhat.com (Postfix) with ESMTPS id EC64A1014A6B; Fri, 8 Apr 2022 13:12:54 +0000 (UTC) Received: from mm-prod-listman-01.mail-001.prod.us-east-1.aws.redhat.com (mm-prod-listman-01.mail-001.prod.us-east-1.aws.redhat.com [10.30.29.100]) by smtp.corp.redhat.com (Postfix) with ESMTP id 62D3C403367; Fri, 8 Apr 2022 13:12:54 +0000 (UTC) Received: from mm-prod-listman-01.mail-001.prod.us-east-1.aws.redhat.com (localhost [IPv6:::1]) by mm-prod-listman-01.mail-001.prod.us-east-1.aws.redhat.com (Postfix) with ESMTP id 05888194034D; Fri, 8 Apr 2022 13:12:53 +0000 (UTC) Received: from smtp.corp.redhat.com (int-mx10.intmail.prod.int.rdu2.redhat.com [10.11.54.10]) by mm-prod-listman-01.mail-001.prod.us-east-1.aws.redhat.com (Postfix) with ESMTP id 679321940350 for ; Fri, 8 Apr 2022 13:12:52 +0000 (UTC) Received: by smtp.corp.redhat.com (Postfix) id 4566E416156; Fri, 8 Apr 2022 13:12:52 +0000 (UTC) Received: from work.redhat.com (unknown [10.39.193.206]) by smtp.corp.redhat.com (Postfix) with ESMTP id CACD740316C; Fri, 8 Apr 2022 13:12:51 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=redhat.com; s=mimecast20190719; t=1649423587; h=from:from:sender:sender: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:list-id:list-help: list-unsubscribe:list-subscribe:list-post; bh=/0Rz5XSi8NpKctr8yB8glV4dbx53e0pD2A3tzpS9AKw=; b=F3MESM7vV9/gq13UNlmx9txzvj3e9wpKoRdmOAdwgxQZ41w27JrRoYD4ocgiDDOZ2eYPpr wImOGB1/lAt70KRnHbHRjLf3o42z1CqO0oU6eD4vXK5Q4KoWoREBDACIEEIhPHRuyUOr6/ 41z3GbOtCqGxOPMtnOs8oMSj08XVntU= X-MC-Unique: nlR3qhbDPOCn5WcYokc7iw-1 X-Original-To: libvir-list@listman.corp.redhat.com From: Tim Wiederhake To: libvir-list@redhat.com Subject: [libvirt PATCH 4/5] virNWFilterDriverState: Destroy mutex safely Date: Fri, 8 Apr 2022 15:12:47 +0200 Message-Id: <20220408131248.48609-5-twiederh@redhat.com> In-Reply-To: <20220408131248.48609-1-twiederh@redhat.com> References: <20220408131248.48609-1-twiederh@redhat.com> MIME-Version: 1.0 X-Scanned-By: MIMEDefang 2.85 on 10.11.54.10 X-BeenThere: libvir-list@redhat.com X-Mailman-Version: 2.1.29 Precedence: list List-Id: Development discussions about the libvirt library & tools List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Cc: Tim Wiederhake Errors-To: libvir-list-bounces@redhat.com Sender: "libvir-list" X-Scanned-By: MIMEDefang 2.85 on 10.11.54.10 Authentication-Results: relay.mimecast.com; auth=pass smtp.auth=CUSA124A263 smtp.mailfrom=libvir-list-bounces@redhat.com X-Mimecast-Spam-Score: 0 X-Mimecast-Originator: redhat.com Content-Transfer-Encoding: quoted-printable X-ZohoMail-DKIM: pass (identity @redhat.com) X-ZM-MESSAGEID: 1649423590382100001 Content-Type: text/plain; charset="utf-8"; x-default="true" Allow nwfilterStateCleanupLocked to be called on a partially constructed driver object. This enables the next patch to simplify and fix error handling in nwfilterStateInitialize. Signed-off-by: Tim Wiederhake Reviewed-by: Michal Privoznik --- src/conf/virnwfilterobj.h | 1 + src/nwfilter/nwfilter_driver.c | 4 +++- 2 files changed, 4 insertions(+), 1 deletion(-) diff --git a/src/conf/virnwfilterobj.h b/src/conf/virnwfilterobj.h index cb103280e8..b67dc017c5 100644 --- a/src/conf/virnwfilterobj.h +++ b/src/conf/virnwfilterobj.h @@ -45,6 +45,7 @@ struct _virNWFilterDriverState { =20 /* Recursive. Hold for filter changes, instantiation or deletion */ virMutex updateLock; + bool updateLockInitialized; }; =20 virNWFilterDef * diff --git a/src/nwfilter/nwfilter_driver.c b/src/nwfilter/nwfilter_driver.c index f89b5b8757..bf17c5ea66 100644 --- a/src/nwfilter/nwfilter_driver.c +++ b/src/nwfilter/nwfilter_driver.c @@ -173,7 +173,8 @@ nwfilterStateCleanupLocked(void) /* free inactive nwfilters */ virNWFilterObjListFree(driver->nwfilters); =20 - virMutexDestroy(&driver->updateLock); + if (driver->updateLockInitialized) + virMutexDestroy(&driver->updateLock); g_clear_pointer(&driver, g_free); =20 return 0; @@ -222,6 +223,7 @@ nwfilterStateInitialize(bool privileged, if (virMutexInitRecursive(&driver->updateLock) < 0) goto err_free_driverstate; =20 + driver->updateLockInitialized =3D true; driver->privileged =3D privileged; =20 if (!(driver->nwfilters =3D virNWFilterObjListNew())) --=20 2.31.1 From nobody Mon May 13 13:00:14 2024 Delivered-To: importer@patchew.org Received-SPF: pass (zohomail.com: domain of redhat.com designates 170.10.129.124 as permitted sender) client-ip=170.10.129.124; envelope-from=libvir-list-bounces@redhat.com; helo=us-smtp-delivery-124.mimecast.com; Authentication-Results: mx.zohomail.com; dkim=pass; spf=pass (zohomail.com: domain of redhat.com designates 170.10.129.124 as permitted sender) smtp.mailfrom=libvir-list-bounces@redhat.com; dmarc=pass(p=none dis=none) header.from=redhat.com ARC-Seal: i=1; a=rsa-sha256; t=1649423585; cv=none; d=zohomail.com; s=zohoarc; b=FJH9tfORnDxIMbGNoSap+WZswmWcFkTtWhGLXosd3DOM0d86tFQQAW9+KC8ChoGfkeEv5GJYNRQ6vEsg8OzoNJSZDHiCy8EKPduHEbFgjy5wGRrkykoHrm24gM+HaJoRhCpx1F5rF08gYq9HdcVlG6sp/XT7cBcSSjiPbON2+cw= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1649423585; 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=bhsnjnu4/810M0kyOufKSYag4iwP8NXI3r3gzr8u2fk=; b=TJnHn0MNry5wFnQZ/fwNYz0r04Zck/YSh9i15CJ8aPne5q6Eh/IwwAadYCLCfOPClutDns1D6Gc5/wXq4PZzxann2XY8sB8BK6eArH+E3QnQWhQS7mkgU3JaUdNW4GqUDTmPGf8Q5EsavSRWwja3NLGgMhs2JfhRkBLZabVZgXo= ARC-Authentication-Results: i=1; mx.zohomail.com; dkim=pass; spf=pass (zohomail.com: domain of redhat.com designates 170.10.129.124 as permitted sender) smtp.mailfrom=libvir-list-bounces@redhat.com; dmarc=pass header.from= (p=none dis=none) Return-Path: Received: from us-smtp-delivery-124.mimecast.com (us-smtp-delivery-124.mimecast.com [170.10.129.124]) by mx.zohomail.com with SMTPS id 1649423585604737.9569811519157; Fri, 8 Apr 2022 06:13:05 -0700 (PDT) Received: from mimecast-mx02.redhat.com (mimecast-mx02.redhat.com [66.187.233.88]) by relay.mimecast.com with ESMTP with STARTTLS (version=TLSv1.2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id us-mta-75--M8s8WsKPFa-EZn2XQ97Xw-1; Fri, 08 Apr 2022 09:13:00 -0400 Received: from smtp.corp.redhat.com (int-mx07.intmail.prod.int.rdu2.redhat.com [10.11.54.7]) (using TLSv1.2 with cipher AECDH-AES256-SHA (256/256 bits)) (No client certificate requested) by mimecast-mx02.redhat.com (Postfix) with ESMTPS id 4496E85A5A8; Fri, 8 Apr 2022 13:12:56 +0000 (UTC) Received: from mm-prod-listman-01.mail-001.prod.us-east-1.aws.redhat.com (mm-prod-listman-01.mail-001.prod.us-east-1.aws.redhat.com [10.30.29.100]) by smtp.corp.redhat.com (Postfix) with ESMTP id 30A201402427; Fri, 8 Apr 2022 13:12:56 +0000 (UTC) Received: from mm-prod-listman-01.mail-001.prod.us-east-1.aws.redhat.com (localhost [IPv6:::1]) by mm-prod-listman-01.mail-001.prod.us-east-1.aws.redhat.com (Postfix) with ESMTP id C36BC1940349; Fri, 8 Apr 2022 13:12:54 +0000 (UTC) Received: from smtp.corp.redhat.com (int-mx10.intmail.prod.int.rdu2.redhat.com [10.11.54.10]) by mm-prod-listman-01.mail-001.prod.us-east-1.aws.redhat.com (Postfix) with ESMTP id 2A8A41940358 for ; Fri, 8 Apr 2022 13:12:53 +0000 (UTC) Received: by smtp.corp.redhat.com (Postfix) id EDDCE403367; Fri, 8 Apr 2022 13:12:52 +0000 (UTC) Received: from work.redhat.com (unknown [10.39.193.206]) by smtp.corp.redhat.com (Postfix) with ESMTP id 7E8AC416156; Fri, 8 Apr 2022 13:12:52 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=redhat.com; s=mimecast20190719; t=1649423584; h=from:from:sender:sender: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:list-id:list-help: list-unsubscribe:list-subscribe:list-post; bh=bhsnjnu4/810M0kyOufKSYag4iwP8NXI3r3gzr8u2fk=; b=hdquwZDRx7ro0h8Bf7ARNlfyTlDU0if3P2wb3dEpFJ7DpUYrYHaPg6XhCWMuRNlebAauD5 7yvwqwCa/zKHwT4MFtN1mKXth6gdR61C7pUfj+SfWObYFtIfVX/IMkCYFnzJnMOMS+jcBk XG1tQ/MmOVKn1rgGt7BaAuCymZrMZM8= X-MC-Unique: -M8s8WsKPFa-EZn2XQ97Xw-1 X-Original-To: libvir-list@listman.corp.redhat.com From: Tim Wiederhake To: libvir-list@redhat.com Subject: [libvirt PATCH 5/5] nwfilterStateInitialize: Simplify and fix error handling Date: Fri, 8 Apr 2022 15:12:48 +0200 Message-Id: <20220408131248.48609-6-twiederh@redhat.com> In-Reply-To: <20220408131248.48609-1-twiederh@redhat.com> References: <20220408131248.48609-1-twiederh@redhat.com> MIME-Version: 1.0 X-Scanned-By: MIMEDefang 2.85 on 10.11.54.10 X-BeenThere: libvir-list@redhat.com X-Mailman-Version: 2.1.29 Precedence: list List-Id: Development discussions about the libvirt library & tools List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Cc: Tim Wiederhake Errors-To: libvir-list-bounces@redhat.com Sender: "libvir-list" X-Scanned-By: MIMEDefang 2.85 on 10.11.54.7 Authentication-Results: relay.mimecast.com; auth=pass smtp.auth=CUSA124A263 smtp.mailfrom=libvir-list-bounces@redhat.com X-Mimecast-Spam-Score: 0 X-Mimecast-Originator: redhat.com Content-Transfer-Encoding: quoted-printable X-ZohoMail-DKIM: pass (identity @redhat.com) X-ZM-MESSAGEID: 1649423586366100006 Content-Type: text/plain; charset="utf-8"; x-default="true" Under certain circumstances nwfilterStateInitialize could leak memory: If e.g. the call to virNWFilterConfLayerInit fails, the error path err_techdrivers_shutdown does not free the previously allocated memory held in driver->stateDir. Signed-off-by: Tim Wiederhake Reviewed-by: Michal Privoznik --- src/nwfilter/nwfilter_driver.c | 38 ++++++++++------------------------ 1 file changed, 11 insertions(+), 27 deletions(-) diff --git a/src/nwfilter/nwfilter_driver.c b/src/nwfilter/nwfilter_driver.c index bf17c5ea66..b66ba22737 100644 --- a/src/nwfilter/nwfilter_driver.c +++ b/src/nwfilter/nwfilter_driver.c @@ -210,18 +210,17 @@ nwfilterStateInitialize(bool privileged, if (root !=3D NULL) { virReportError(VIR_ERR_INVALID_ARG, "%s", _("Driver does not support embedded mode")); - return -1; + return VIR_DRV_STATE_INIT_ERROR; } =20 - if (virGDBusHasSystemBus() && - !(sysbus =3D virGDBusGetSystemBus())) + if (virGDBusHasSystemBus() && !(sysbus =3D virGDBusGetSystemBus())) return VIR_DRV_STATE_INIT_ERROR; =20 driver =3D g_new0(virNWFilterDriverState, 1); =20 driver->lockFD =3D -1; if (virMutexInitRecursive(&driver->updateLock) < 0) - goto err_free_driverstate; + goto error; =20 driver->updateLockInitialized =3D true; driver->privileged =3D privileged; @@ -248,18 +247,19 @@ nwfilterStateInitialize(bool privileged, goto error; =20 if (virNWFilterIPAddrMapInit() < 0) - goto err_free_driverstate; + goto error; + if (virNWFilterLearnInit() < 0) - goto err_exit_ipaddrmapshutdown; + goto error; + if (virNWFilterDHCPSnoopInit() < 0) - goto err_exit_learnshutdown; + goto error; =20 if (virNWFilterTechDriversInit(privileged) < 0) - goto err_dhcpsnoop_shutdown; + goto error; =20 - if (virNWFilterConfLayerInit(virNWFilterTriggerRebuildImpl, - driver) < 0) - goto err_techdrivers_shutdown; + if (virNWFilterConfLayerInit(virNWFilterTriggerRebuildImpl, driver) < = 0) + goto error; =20 /* * startup the DBus late so we don't get a reload signal while @@ -297,22 +297,6 @@ nwfilterStateInitialize(bool privileged, =20 error: nwfilterStateCleanupLocked(); - - return VIR_DRV_STATE_INIT_ERROR; - - err_techdrivers_shutdown: - virNWFilterTechDriversShutdown(); - err_dhcpsnoop_shutdown: - virNWFilterDHCPSnoopShutdown(); - err_exit_learnshutdown: - virNWFilterLearnShutdown(); - err_exit_ipaddrmapshutdown: - virNWFilterIPAddrMapShutdown(); - - err_free_driverstate: - virNWFilterObjListFree(driver->nwfilters); - g_clear_pointer(&driver, g_free); - return VIR_DRV_STATE_INIT_ERROR; } =20 --=20 2.31.1