From nobody Sun Feb 8 12:43:25 2026 Delivered-To: importer@patchew.org Received-SPF: pass (zohomail.com: domain of redhat.com designates 207.211.31.120 as permitted sender) client-ip=207.211.31.120; envelope-from=libvir-list-bounces@redhat.com; helo=us-smtp-1.mimecast.com; Authentication-Results: mx.zohomail.com; dkim=pass; spf=pass (zohomail.com: domain of redhat.com designates 207.211.31.120 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=1576658283; cv=none; d=zohomail.com; s=zohoarc; b=EeqrA29Vx0VCNXFltcpJeJFHw7PKwZCBugycIqMetOwJq/1DUAv39d8WziNl7FmKsPqsBoQ2A2AoFjI04vqFsXWRV8JPpCxApGEBwYQ5s9ps6ObhTM4izOv0W2QnAnXjyEyWvMi3inqRcSa2TFPcItuNTB66S3YXL0fUveAHEZc= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1576658283; h=Content-Type:Content-Transfer-Encoding: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=5qHUhEu9ngzuuMVAEfwTqfPi8IF8m5UzzhxM3q1oKMQ=; b=RN1UF8Vn6yySN6J5UyzpTf+Oy8Uasmjzeid4dRG3XisAkhIeRtmkMMAox2Browsn2uSSRLAOV+M42+Odh1/NsOxpzaYP9rmMudPdlKygQ82d+hXNGVJAhU2W2F4/y0YAVdN03d8WO1c/2FNgM2i68u6IlX57pgaQHz5ih03fesI= ARC-Authentication-Results: i=1; mx.zohomail.com; dkim=pass; spf=pass (zohomail.com: domain of redhat.com designates 207.211.31.120 as permitted sender) smtp.mailfrom=libvir-list-bounces@redhat.com; dmarc=pass header.from= (p=none dis=none) header.from= Return-Path: Received: from us-smtp-1.mimecast.com (us-smtp-delivery-1.mimecast.com [207.211.31.120]) by mx.zohomail.com with SMTPS id 157665828322927.27206093275288; Wed, 18 Dec 2019 00:38:03 -0800 (PST) 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-118-S9iEERsXONqHcRdIbmIUYQ-1; Wed, 18 Dec 2019 03:37:39 -0500 Received: from smtp.corp.redhat.com (int-mx08.intmail.prod.int.phx2.redhat.com [10.5.11.23]) (using TLSv1.2 with cipher AECDH-AES256-SHA (256/256 bits)) (No client certificate requested) by mimecast-mx01.redhat.com (Postfix) with ESMTPS id 8CC6B107ACCA; Wed, 18 Dec 2019 08:37:34 +0000 (UTC) Received: from colo-mx.corp.redhat.com (colo-mx02.intmail.prod.int.phx2.redhat.com [10.5.11.21]) by smtp.corp.redhat.com (Postfix) with ESMTPS id 68C70381; Wed, 18 Dec 2019 08:37:34 +0000 (UTC) Received: from lists01.pubmisc.prod.ext.phx2.redhat.com (lists01.pubmisc.prod.ext.phx2.redhat.com [10.5.19.33]) by colo-mx.corp.redhat.com (Postfix) with ESMTP id 21D2F827D0; Wed, 18 Dec 2019 08:37:34 +0000 (UTC) Received: from smtp.corp.redhat.com (int-mx02.intmail.prod.int.phx2.redhat.com [10.5.11.12]) by lists01.pubmisc.prod.ext.phx2.redhat.com (8.13.8/8.13.8) with ESMTP id xBI8bGvi026779 for ; Wed, 18 Dec 2019 03:37:16 -0500 Received: by smtp.corp.redhat.com (Postfix) id C09E660C81; Wed, 18 Dec 2019 08:37:16 +0000 (UTC) Received: from localhost.localdomain (ovpn-204-155.brq.redhat.com [10.40.204.155]) by smtp.corp.redhat.com (Postfix) with ESMTP id 422E260C18 for ; Wed, 18 Dec 2019 08:37:16 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=redhat.com; s=mimecast20190719; t=1576658282; h=from:from:sender:sender:reply-to:subject:subject:date:date: message-id:message-id:to:to: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=5qHUhEu9ngzuuMVAEfwTqfPi8IF8m5UzzhxM3q1oKMQ=; b=HYB06KW8yyTyX7FeMiy7c6kajk3jECZlbw5tKIsckXM9pyAWHJysO4HVyPknhZ02O4xp85 wS8xUI9lUCRTStOtxfbCaa/ECv8t4YVbzW6IEe4x6UYPbNzzENYzhf/ZEfFeFjUWPR46QB yXYh6IObkFYsLiO+9RPRTN4U3bGfeDg= From: Michal Privoznik To: libvir-list@redhat.com Date: Wed, 18 Dec 2019 09:37:07 +0100 Message-Id: <5a2cf0792bf74ccf794dc33b1673359e3d0efbf3.1576658185.git.mprivozn@redhat.com> In-Reply-To: References: MIME-Version: 1.0 X-Scanned-By: MIMEDefang 2.79 on 10.5.11.12 X-loop: libvir-list@redhat.com Subject: [libvirt] [PATCH 4/5] qemu: Reoder cleanup in qemuStateCleanup() X-BeenThere: libvir-list@redhat.com X-Mailman-Version: 2.1.12 Precedence: junk List-Id: Development discussions about the libvirt library & tools List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Sender: libvir-list-bounces@redhat.com Errors-To: libvir-list-bounces@redhat.com X-Scanned-By: MIMEDefang 2.84 on 10.5.11.23 X-MC-Unique: S9iEERsXONqHcRdIbmIUYQ-1 X-Mimecast-Spam-Score: 0 Content-Transfer-Encoding: quoted-printable X-ZohoMail-DKIM: pass (identity @redhat.com) Content-Type: text/plain; charset="utf-8" This function is supposed to clean up virQEMUDriver structure and free individual members. However, it's doing that in random order which makes it hard to track which members are being freed and which are not. Do the free in reverse order than the structure definition - assuming that the most important members (like mutex) are declared first and freed last. Signed-off-by: Michal Privoznik --- src/qemu/qemu_driver.c | 43 +++++++++++++++++------------------------- 1 file changed, 17 insertions(+), 26 deletions(-) diff --git a/src/qemu/qemu_driver.c b/src/qemu/qemu_driver.c index 65c3be58d3..0b9e31b344 100644 --- a/src/qemu/qemu_driver.c +++ b/src/qemu/qemu_driver.c @@ -1122,38 +1122,29 @@ qemuStateCleanup(void) if (!qemu_driver) return -1; =20 - if (qemu_driver->lockFD !=3D -1) - virPidFileRelease(qemu_driver->config->stateDir, "driver", qemu_dr= iver->lockFD); - virThreadPoolFree(qemu_driver->workerPool); - virObjectUnref(qemu_driver->config); - virObjectUnref(qemu_driver->hostdevMgr); - virHashFree(qemu_driver->sharedDevices); - virObjectUnref(qemu_driver->caps); - virObjectUnref(qemu_driver->qemuCapsCache); - - virObjectUnref(qemu_driver->domains); - virPortAllocatorRangeFree(qemu_driver->remotePorts); - virPortAllocatorRangeFree(qemu_driver->webSocketPorts); - virPortAllocatorRangeFree(qemu_driver->migrationPorts); virObjectUnref(qemu_driver->migrationErrors); - - virObjectUnref(qemu_driver->xmlopt); - - virSysinfoDefFree(qemu_driver->hostsysinfo); - virObjectUnref(qemu_driver->closeCallbacks); - - VIR_FREE(qemu_driver->qemuImgBinary); - + virLockManagerPluginUnref(qemu_driver->lockManager); + virSysinfoDefFree(qemu_driver->hostsysinfo); + virPortAllocatorRangeFree(qemu_driver->migrationPorts); + virPortAllocatorRangeFree(qemu_driver->webSocketPorts); + virPortAllocatorRangeFree(qemu_driver->remotePorts); + virHashFree(qemu_driver->sharedDevices); + virObjectUnref(qemu_driver->hostdevMgr); virObjectUnref(qemu_driver->securityManager); - - ebtablesContextFree(qemu_driver->ebtables); - - /* Free domain callback list */ virObjectUnref(qemu_driver->domainEventState); + virObjectUnref(qemu_driver->qemuCapsCache); + virObjectUnref(qemu_driver->xmlopt); + virObjectUnref(qemu_driver->caps); + ebtablesContextFree(qemu_driver->ebtables); + VIR_FREE(qemu_driver->qemuImgBinary); + virObjectUnref(qemu_driver->domains); + virThreadPoolFree(qemu_driver->workerPool); =20 - virLockManagerPluginUnref(qemu_driver->lockManager); + if (qemu_driver->lockFD !=3D -1) + virPidFileRelease(qemu_driver->config->stateDir, "driver", qemu_dr= iver->lockFD); =20 + virObjectUnref(qemu_driver->config); virMutexDestroy(&qemu_driver->lock); VIR_FREE(qemu_driver); =20 --=20 2.24.1 -- libvir-list mailing list libvir-list@redhat.com https://www.redhat.com/mailman/listinfo/libvir-list