From nobody Fri Nov 7 11:47:25 2025 Delivered-To: importer@patchew.org Received-SPF: pass (zoho.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; Authentication-Results: mx.zohomail.com; dkim=fail; spf=pass (zoho.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=gmail.com Return-Path: Received: from lists.gnu.org (209.51.188.17 [209.51.188.17]) by mx.zohomail.com with SMTPS id 154789253301451.03595274964414; Sat, 19 Jan 2019 02:08:53 -0800 (PST) Received: from localhost ([127.0.0.1]:53774 helo=lists.gnu.org) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1gknYN-00055b-OG for importer@patchew.org; Sat, 19 Jan 2019 05:08:39 -0500 Received: from eggs.gnu.org ([209.51.188.92]:55286) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1gknTa-0001MM-GR for qemu-devel@nongnu.org; Sat, 19 Jan 2019 05:03:44 -0500 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1gknTZ-00082x-GA for qemu-devel@nongnu.org; Sat, 19 Jan 2019 05:03:42 -0500 Received: from mail-wr1-x443.google.com ([2a00:1450:4864:20::443]:41305) by eggs.gnu.org with esmtps (TLS1.0:RSA_AES_128_CBC_SHA1:16) (Exim 4.71) (envelope-from ) id 1gknTZ-0007ve-4o for qemu-devel@nongnu.org; Sat, 19 Jan 2019 05:03:41 -0500 Received: by mail-wr1-x443.google.com with SMTP id x10so17872128wrs.8 for ; Sat, 19 Jan 2019 02:03:30 -0800 (PST) Received: from localhost.localdomain ([176.228.155.165]) by smtp.gmail.com with ESMTPSA id j8sm113868847wmd.0.2019.01.19.02.03.27 (version=TLS1_2 cipher=ECDHE-RSA-CHACHA20-POLY1305 bits=256/256); Sat, 19 Jan 2019 02:03:28 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20161025; h=from:to:cc:subject:date:message-id:in-reply-to:references :mime-version:content-transfer-encoding; bh=bG5cUfd2eVTyoes7wh2AGtQRcKHR5KJhjZcxtKUpV0E=; b=dgU9SyGJSGBSlcyxQ8m9u0yzNTp2IedqlBxtz6dnuNEx6KxkaS/4QI+j4Qh0fKiN/d 8DElF5DadGc5394UZvggr1KDPrpAzwRIi1moq4tM+JXudqxn3fJQToz3fmuLwwAaUCPK F6IdZqNqxVjK7Nb8bZIcn9WYEo4lgWBc5/UObV3fq0y/TtxKhqf3gb08rRFBoEM/bX4f 5T903ifpKs7IEU23Va4CsufylA4wSUZHkhmJzucgVfEt3d/Wtr0LcEQfnVt//4nTJ7Is Ley329BUeBnw0fQspXk3BFiw2Ua9KGfgvXwDjL9epRAYnlKZCGDHMoN1zIJtHfPtobq4 7GKA== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:from:to:cc:subject:date:message-id:in-reply-to :references:mime-version:content-transfer-encoding; bh=bG5cUfd2eVTyoes7wh2AGtQRcKHR5KJhjZcxtKUpV0E=; b=pe/MLiobfW7l09/65UkWUONuHC+s0EkK01H67scH9qHbjpEfxB1qz4i+CwL7dYAL/p SysYQXc4ZEpTWzTnul7JmSsB/RROagXGurQzXx3SrtmQJb/35SExJwbmx4N42viLxCyO FzeNNnKcbYsDgzG2RE66Vk892QqgsSgVKzWfBRIWuVAFNRyGZQXL0KOp4Xa7/g4XaIVi 6vuSFBEvm0pVagSR3goIqKXYB6fEXhphYo/NZGmSEA6Gna540x678WmS0bDfSxAJI6se l7vOlDEJeilpYvuaEn6C749ZJjyTUlMaAqoEXv4f+O8TeOht6gTyTnAl7BSdtIrUo9AZ 9VcQ== X-Gm-Message-State: AJcUukfl/KhCy3hGxev5sEU1WfhDFviscu+9y98V4BfVBx+lHe4J0y3a 0Ru2Mf1BLh4T1aMBX3cS4wJ6ggZ5 X-Google-Smtp-Source: ALg8bN5wRxPpTNHukwj1NsBy1fxWVPxtmeD4fuXSXiJFfmvQCcO+JkOUlFMnQUiN/h3EZtdH76E9+A== X-Received: by 2002:adf:f149:: with SMTP id y9mr21578734wro.284.1547892208753; Sat, 19 Jan 2019 02:03:28 -0800 (PST) From: Marcel Apfelbaum To: qemu-devel@nongnu.org, peter.maydell@linaro.org Date: Sat, 19 Jan 2019 12:03:11 +0200 Message-Id: <20190119100315.23985-7-marcel.apfelbaum@gmail.com> X-Mailer: git-send-email 2.17.1 In-Reply-To: <20190119100315.23985-1-marcel.apfelbaum@gmail.com> References: <20190119100315.23985-1-marcel.apfelbaum@gmail.com> MIME-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: quoted-printable X-detected-operating-system: by eggs.gnu.org: Genre and OS details not recognized. X-Received-From: 2a00:1450:4864:20::443 Subject: [Qemu-devel] [PATCH PULL 06/10] hw/rdma: Verify that ptr is not NULL before freeing X-BeenThere: qemu-devel@nongnu.org X-Mailman-Version: 2.1.21 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Cc: cohuck@redhat.com, liq3ea@163.com, yuval.shaia@oracle.com, kamalheib1@gmail.com, philmd@redhat.com Errors-To: qemu-devel-bounces+importer=patchew.org@nongnu.org Sender: "Qemu-devel" X-ZohoMail-DKIM: fail (Header signature does not verify) From: Yuval Shaia To cover the case where fini() was called even when init() fails make sure objects are not NULL before calling to non-null-safe destructors. Signed-off-by: Yuval Shaia Reviewed-by: Philippe Mathieu-Daud=C3=A9 Message-Id: <20190116151538.14088-1-yuval.shaia@oracle.com> Signed-off-by: Marcel Apfelbaum --- hw/rdma/rdma_backend.c | 6 ++++-- hw/rdma/rdma_rm.c | 7 ++++++- 2 files changed, 10 insertions(+), 3 deletions(-) diff --git a/hw/rdma/rdma_backend.c b/hw/rdma/rdma_backend.c index b49edaacaf..3ee5172c96 100644 --- a/hw/rdma/rdma_backend.c +++ b/hw/rdma/rdma_backend.c @@ -1066,8 +1066,10 @@ static void mad_fini(RdmaBackendDev *backend_dev) pr_dbg("Stopping MAD\n"); disable_rdmacm_mux_async(backend_dev); qemu_chr_fe_disconnect(backend_dev->rdmacm_mux.chr_be); - qlist_destroy_obj(QOBJECT(backend_dev->recv_mads_list.list)); - qemu_mutex_destroy(&backend_dev->recv_mads_list.lock); + if (backend_dev->recv_mads_list.list) { + qlist_destroy_obj(QOBJECT(backend_dev->recv_mads_list.list)); + qemu_mutex_destroy(&backend_dev->recv_mads_list.lock); + } } =20 int rdma_backend_get_gid_index(RdmaBackendDev *backend_dev, diff --git a/hw/rdma/rdma_rm.c b/hw/rdma/rdma_rm.c index f5b1295890..8bf241e91f 100644 --- a/hw/rdma/rdma_rm.c +++ b/hw/rdma/rdma_rm.c @@ -41,6 +41,9 @@ static inline void res_tbl_init(const char *name, RdmaRmR= esTbl *tbl, =20 static inline void res_tbl_free(RdmaRmResTbl *tbl) { + if (!tbl->bitmap) { + return; + } qemu_mutex_destroy(&tbl->lock); g_free(tbl->tbl); g_free(tbl->bitmap); @@ -655,5 +658,7 @@ void rdma_rm_fini(RdmaDeviceResources *dev_res, RdmaBac= kendDev *backend_dev, res_tbl_free(&dev_res->cq_tbl); res_tbl_free(&dev_res->pd_tbl); =20 - g_hash_table_destroy(dev_res->qp_hash); + if (dev_res->qp_hash) { + g_hash_table_destroy(dev_res->qp_hash); + } } --=20 2.17.1