From nobody Sun Oct 5 00:09:21 2025 Delivered-To: importer@patchew.org Received-SPF: pass (zohomail.com: domain of lists.libvirt.org designates 8.43.85.245 as permitted sender) client-ip=8.43.85.245; envelope-from=devel-bounces@lists.libvirt.org; helo=lists.libvirt.org; Authentication-Results: mx.zohomail.com; dkim=fail; spf=pass (zohomail.com: domain of lists.libvirt.org designates 8.43.85.245 as permitted sender) smtp.mailfrom=devel-bounces@lists.libvirt.org; dmarc=pass(p=reject dis=none) header.from=lists.libvirt.org ARC-Seal: i=1; a=rsa-sha256; t=1757489601; cv=none; d=zohomail.com; s=zohoarc; b=U9+4jyHtqRzetQF8kznJ/lCySS1HfifO3kyH6pEd7kQ18Djesr0kXsdO7Ai8mbRd9O1HxY2F41dejJ9dQ37B+IqlAs4Zkisaf1xtDLmzQ4X6bxGKnMLqG9SJbSBTcfXTk0acnl++EURSa7IEkHFxuv42JdIbvPLu9QA5xMOB91M= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1757489601; h=Content-Type:Content-Transfer-Encoding:Date:Date:From:From:List-Subscribe:List-Post:List-Owner:List-Id:List-Archive:List-Help:List-Unsubscribe:MIME-Version:Message-ID:Reply-To:Reply-To:Subject:Subject:To:To:Message-Id:Cc; bh=Lm2xTFRlxms/d3Y4uo+Iyo4uUi59EUtMqfz2le8YySY=; b=EMPXjO76FBUleXNNV3kr06SXg+WiH7pYXmnYe8/Z0x5cCnvU7L5PPI3LtusoPhLPZCi9+15clEAvy5C4zFt9iY3lo5l6XRLTZ4ZdIDjVUtIa04yjEFQaSCNT6J6bPM4qBOvwE7ZdsLHAdwoCcYvqK0rIh70u+G+iIMxpYQ+/Pjk= ARC-Authentication-Results: i=1; mx.zohomail.com; dkim=fail; spf=pass (zohomail.com: domain of lists.libvirt.org designates 8.43.85.245 as permitted sender) smtp.mailfrom=devel-bounces@lists.libvirt.org; dmarc=pass header.from= (p=reject dis=none) Return-Path: Received: from lists.libvirt.org (lists.libvirt.org [8.43.85.245]) by mx.zohomail.com with SMTPS id 1757489601232912.5623453443542; Wed, 10 Sep 2025 00:33:21 -0700 (PDT) Received: by lists.libvirt.org (Postfix, from userid 993) id E003F41AD9; Wed, 10 Sep 2025 03:33:19 -0400 (EDT) Received: from [172.19.199.3] (lists.libvirt.org [8.43.85.245]) by lists.libvirt.org (Postfix) with ESMTP id 069F441ACC; Wed, 10 Sep 2025 03:32:17 -0400 (EDT) Received: by lists.libvirt.org (Postfix, from userid 993) id 1876F41AC4; Wed, 10 Sep 2025 03:31:56 -0400 (EDT) Received: from us-smtp-delivery-124.mimecast.com (us-smtp-delivery-124.mimecast.com [170.10.129.124]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (3072 bits) server-digest SHA256) (No client certificate requested) by lists.libvirt.org (Postfix) with ESMTPS id 4286741AC7 for ; Wed, 10 Sep 2025 03:31:54 -0400 (EDT) Received: from mx-prod-mc-04.mail-002.prod.us-west-2.aws.redhat.com (ec2-54-186-198-63.us-west-2.compute.amazonaws.com [54.186.198.63]) by relay.mimecast.com with ESMTP with STARTTLS (version=TLSv1.3, cipher=TLS_AES_256_GCM_SHA384) id us-mta-191-Gf9MF4gGM56-8d7UTVkXFA-1; Wed, 10 Sep 2025 03:31:52 -0400 Received: from mx-prod-int-05.mail-002.prod.us-west-2.aws.redhat.com (mx-prod-int-05.mail-002.prod.us-west-2.aws.redhat.com [10.30.177.17]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (2048 bits) server-digest SHA256) (No client certificate requested) by mx-prod-mc-04.mail-002.prod.us-west-2.aws.redhat.com (Postfix) with ESMTPS id 9206019560B0 for ; Wed, 10 Sep 2025 07:31:51 +0000 (UTC) Received: from localhost.localdomain (unknown [10.43.3.236]) by mx-prod-int-05.mail-002.prod.us-west-2.aws.redhat.com (Postfix) with ESMTP id ECAD31956095 for ; Wed, 10 Sep 2025 07:31:50 +0000 (UTC) X-Spam-Checker-Version: SpamAssassin 4.0.1 (2024-03-26) on lists.libvirt.org X-Spam-Level: X-Spam-Status: No, score=-1.5 required=5.0 tests=DKIM_INVALID,DKIM_SIGNED, MAILING_LIST_MULTI,RCVD_IN_DNSWL_LOW, RCVD_IN_VALIDITY_CERTIFIED_BLOCKED,RCVD_IN_VALIDITY_RPBL_BLOCKED, RCVD_IN_VALIDITY_SAFE_BLOCKED,SPF_PASS autolearn=unavailable autolearn_force=no version=4.0.1 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=redhat.com; s=mimecast20190719; t=1757489513; h=from:from: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; bh=Lm2xTFRlxms/d3Y4uo+Iyo4uUi59EUtMqfz2le8YySY=; b=C3v1Ak4Cx2V2OHQVY5WrAHx65m8Lj92RZZNaTn28LOPIINBzrhLPWfN8vxrTzbnoNhuI8K r7w+jlmL1yuVWmvfqVqH7pqV+BZhGmFgAPHrJJ0bJSj9yXkDAXsqcKt4zsWnP58pO8O4wF 3Vsjt3GDS4DfrWbGTtX64ky/KqgmRbs= X-MC-Unique: Gf9MF4gGM56-8d7UTVkXFA-1 X-Mimecast-MFC-AGG-ID: Gf9MF4gGM56-8d7UTVkXFA_1757489511 To: devel@lists.libvirt.org Subject: [PATCH] ch: Avoid memleak in virCHDriverConfigDispose() Date: Wed, 10 Sep 2025 09:31:44 +0200 Message-ID: <957a7a8e6906f02680ce1c19f7fae75c43ecada7.1757489504.git.mprivozn@redhat.com> MIME-Version: 1.0 X-Scanned-By: MIMEDefang 3.0 on 10.30.177.17 X-Mimecast-Spam-Score: 0 X-Mimecast-MFC-PROC-ID: 1nxxfyXHFpkT1g9V3tbsov3D_NAgf0O-fXf3IOZIHyo_1757489511 X-Mimecast-Originator: redhat.com Content-Transfer-Encoding: quoted-printable Message-ID-Hash: I6LCBMBTU4KQWO5UAXCIK6VPRDPMSMHQ X-Message-ID-Hash: I6LCBMBTU4KQWO5UAXCIK6VPRDPMSMHQ X-MailFrom: mprivozn@redhat.com X-Mailman-Rule-Misses: dmarc-mitigation; no-senders; approved; loop; banned-address; header-match-devel.lists.libvirt.org-0; emergency; member-moderation; nonmember-moderation; administrivia; implicit-dest; max-recipients; max-size; news-moderation; no-subject; digests; suspicious-header X-Mailman-Version: 3.3.10 Precedence: list List-Id: Development discussions about the libvirt library & tools Archived-At: List-Archive: List-Help: List-Owner: List-Post: List-Subscribe: List-Unsubscribe: From: Michal Privoznik via Devel Reply-To: Michal Privoznik X-ZohoMail-DKIM: fail (Header signature does not verify) X-ZM-MESSAGEID: 1757489606692116600 Content-Type: text/plain; charset="utf-8"; x-default="true" From: Michal Privoznik When virCHDriverConfig struct is initialized in virCHDriverConfigNew() the 'configDir' member is allocated but corresponding free is missing in virCHDriverConfigDispose(). While at it, reorder the free calls to match the order in which they are declared in the struct so it's easier to spot missing free call. 20 bytes in 1 blocks are definitely lost in loss record 667 of 2,033 at 0x4912888: malloc (vg_replace_malloc.c:446) by 0x5436747: __vasprintf_internal (in /usr/lib64/libc.so.6) by 0x503EC81: g_vasprintf (in /usr/lib64/libglib-2.0.so.0.8400.3) by 0x500805B: g_strdup_vprintf (in /usr/lib64/libglib-2.0.so.0.8400.3) by 0x5008124: g_strdup_printf (in /usr/lib64/libglib-2.0.so.0.8400.3) by 0xB8C2B70: virCHDriverConfigNew (ch_conf.c:181) by 0xB8C9DDA: chStateInitialize (ch_driver.c:1456) by 0x4D9E316: virStateInitialize (libvirt.c:667) by 0x40539DB: daemonRunStateInit (remote_daemon.c:581) by 0x4AC1EB4: virThreadHelper (virthread.c:256) by 0x5441DE3: start_thread (in /usr/lib64/libc.so.6) by 0x54C25F3: clone (in /usr/lib64/libc.so.6) Signed-off-by: Michal Privoznik Reviewed-by: Peter Krempa --- src/ch/ch_conf.c | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/src/ch/ch_conf.c b/src/ch/ch_conf.c index b9432e2a42..8a542eef19 100644 --- a/src/ch/ch_conf.c +++ b/src/ch/ch_conf.c @@ -211,9 +211,10 @@ virCHDriverConfigDispose(void *obj) { virCHDriverConfig *cfg =3D obj; =20 - g_free(cfg->saveDir); g_free(cfg->stateDir); + g_free(cfg->configDir); g_free(cfg->logDir); + g_free(cfg->saveDir); } =20 #define MIN_VERSION ((15 * 1000000) + (0 * 1000) + (0)) --=20 2.49.1