From patchwork Thu Feb 21 18:57:19 2019 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 8bit X-Patchwork-Submitter: Peter Maydell X-Patchwork-Id: 158941 Delivered-To: patch@linaro.org Received: by 2002:a02:48:0:0:0:0:0 with SMTP id 69csp844078jaa; Thu, 21 Feb 2019 11:09:26 -0800 (PST) X-Google-Smtp-Source: AHgI3IYkDzv9/xCFdABDVSPnrWniU8awN/rcQwiPK/n64VN2vzEHxxcIhJZPelKOjj/hATwIuL0a X-Received: by 2002:a81:3b96:: with SMTP id i144mr38976ywa.155.1550776166912; Thu, 21 Feb 2019 11:09:26 -0800 (PST) ARC-Seal: i=1; a=rsa-sha256; t=1550776166; cv=none; d=google.com; s=arc-20160816; b=CSOH/O8K7mKs+PTSv4lC2miTZTISmsO74ls9skrVFeTFg77WeFuAfMeEKP6IYJlf5Y P8BkMJvMUxlcIWsR2UhYlK9cp26sWgSKHgIUP+7nqtw44sqkkLpXa804UtBadDB8Akjc WF/+kDth6KSmOGjk9UoMmryPRcyLLbKfn/OwH5AyXNTkOEnxBR79NmAJPLyExGpVuuXk A0cjObG+xy0diy3WXZUyh3UXpYjGxUdt+QFsB3Qwhu2lte91r5HrY+taVOV47Zn5oLBF CShEBeBTqtZ8XhATJGl0SLFXGwXUxnRfUOdud/E9V3igtJsMBjtpoq8/P2EAMnBBhvA0 hCvQ== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=sender:errors-to:list-subscribe:list-help:list-post:list-archive :list-unsubscribe:list-id:precedence:subject :content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:to:from:dkim-signature; bh=de17OJhtWJ4ic9K1WXyC5Ixt9mKMZ8x4NgCd17XgBZA=; b=Cu3eYFVMZjpd+BLgBhbU31AjinfljC3k/5Laaq93KyhD5i1a9OA0tXqD6rNeswH4JJ IxOGCcqMeXIeHiwM8NE2auKReXIg1wKK2Z/6kMITBzrRcSq+3BdjRaB4EEl0++E9kyBU qUqkpCfUayKA1BVbgEKyqqqERuNcV2rFkm62fwaCixONwzJ44/VIuIKA4t0hPIrGXK3o 7vUBXbl+CyQR71glAR+svLjKgIhGj17NQLR/gN2kLv0JLV/gx93LAHFGCQ5csXGuGd/3 4s9JIiKmJoF8qyknTQui7v64CjwUe71hGkYpRVUklo/ZTGBLqhMCjw/ctRQx5SFhEQex wFJg== ARC-Authentication-Results: i=1; mx.google.com; dkim=fail header.i=@linaro.org header.s=google header.b=vkpErFFg; spf=pass (google.com: domain of qemu-devel-bounces+patch=linaro.org@nongnu.org designates 209.51.188.17 as permitted sender) smtp.mailfrom="qemu-devel-bounces+patch=linaro.org@nongnu.org"; dmarc=fail (p=NONE sp=NONE dis=NONE) header.from=linaro.org Return-Path: Received: from lists.gnu.org (lists.gnu.org. [209.51.188.17]) by mx.google.com with ESMTPS id b144si8358990yba.72.2019.02.21.11.09.26 for (version=TLS1 cipher=AES128-SHA bits=128/128); Thu, 21 Feb 2019 11:09:26 -0800 (PST) Received-SPF: pass (google.com: domain of qemu-devel-bounces+patch=linaro.org@nongnu.org designates 209.51.188.17 as permitted sender) client-ip=209.51.188.17; Authentication-Results: mx.google.com; dkim=fail header.i=@linaro.org header.s=google header.b=vkpErFFg; spf=pass (google.com: domain of qemu-devel-bounces+patch=linaro.org@nongnu.org designates 209.51.188.17 as permitted sender) smtp.mailfrom="qemu-devel-bounces+patch=linaro.org@nongnu.org"; dmarc=fail (p=NONE sp=NONE dis=NONE) header.from=linaro.org Received: from localhost ([127.0.0.1]:37010 helo=lists.gnu.org) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1gwtio-0000yQ-95 for patch@linaro.org; Thu, 21 Feb 2019 14:09:26 -0500 Received: from eggs.gnu.org ([209.51.188.92]:52026) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1gwtXj-0008N8-3k for qemu-devel@nongnu.org; Thu, 21 Feb 2019 13:58:00 -0500 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1gwtXg-0007My-Eg for qemu-devel@nongnu.org; Thu, 21 Feb 2019 13:57:58 -0500 Received: from mail-wr1-x433.google.com ([2a00:1450:4864:20::433]:35733) by eggs.gnu.org with esmtps (TLS1.0:RSA_AES_128_CBC_SHA1:16) (Exim 4.71) (envelope-from ) id 1gwtXV-0007GN-Lz for qemu-devel@nongnu.org; Thu, 21 Feb 2019 13:57:49 -0500 Received: by mail-wr1-x433.google.com with SMTP id t18so31878773wrx.2 for ; Thu, 21 Feb 2019 10:57:44 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=linaro.org; s=google; h=from:to:subject:date:message-id:in-reply-to:references:mime-version :content-transfer-encoding; bh=de17OJhtWJ4ic9K1WXyC5Ixt9mKMZ8x4NgCd17XgBZA=; b=vkpErFFgavI+B0PRl2M1TqEk/OytTvoM6f9uRERVeOvBWzu0v1DMu20QykGHWhmYmc Qdh1EBMR905qqxNK497tiEj9GfkjazDbnj6yNAXqVRgw6V6M7zjKpq5o1ayxkPmCO1IZ lr96jIwIxTgi270RefFw8VuHocsS0JQU4egPFQUYE8yxwDICtOePV27UeixHKBSKltNu 4hZ1f03av5tCWNtYeO4dF06DhUFlOoreugRn/TQbqECIXoPQeB25GTYednszNdLl1DRS HcHk7OhK/GAMa9PIteAZDOVzJbk1FtHNhjVcEpP6C2Y8SSLlRbxzLcA/lcZdfJJrG5iS lDsg== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:from:to:subject:date:message-id:in-reply-to :references:mime-version:content-transfer-encoding; bh=de17OJhtWJ4ic9K1WXyC5Ixt9mKMZ8x4NgCd17XgBZA=; b=FHQPxfgnQZ7OyyoCqySKEDP2vgcS9S8tZXak+JFWgDNy28FwM1vn2nmSOa7HOm0LYZ IdRZ2OVHPSPoSng7sAktgvgMIuMQKZL3aiRXElrCEQ2pYw+tEetrPFRvxXL3PSu498Ls Y5U0LgluOljGqu33UT4CA08J47hrpF6dFLjQVlSo7vhzbONuOwP0jWJ26LfkP90i1Rpc n7zVpm00LzpIiqQOvh2ww88pL9ZxkmfFizjL0PsQ6h5ZTjAYoFL1ZO6maiMm+eshvAmq 7mPdb4WdvKLe3aqLrxylMt/bp7QxTN/I3lNw1BjlZqeyeiQPX3ulnpDfFDXy1V5IqEov 7duA== X-Gm-Message-State: AHQUAuYuD2Ym2XL5/y4Mtx7AWhLDRy8hswBqxEIjTOT384a9eVmnYvUO o27h68U+Go7o1VsJOQ8koXKw4b4Ufek= X-Received: by 2002:adf:a4c9:: with SMTP id h9mr8244wrb.254.1550775463046; Thu, 21 Feb 2019 10:57:43 -0800 (PST) Received: from orth.archaic.org.uk (orth.archaic.org.uk. [81.2.115.148]) by smtp.gmail.com with ESMTPSA id c18sm29065085wre.32.2019.02.21.10.57.42 for (version=TLS1_2 cipher=ECDHE-RSA-AES128-GCM-SHA256 bits=128/128); Thu, 21 Feb 2019 10:57:42 -0800 (PST) From: Peter Maydell To: qemu-devel@nongnu.org Date: Thu, 21 Feb 2019 18:57:19 +0000 Message-Id: <20190221185739.25362-2-peter.maydell@linaro.org> X-Mailer: git-send-email 2.20.1 In-Reply-To: <20190221185739.25362-1-peter.maydell@linaro.org> References: <20190221185739.25362-1-peter.maydell@linaro.org> MIME-Version: 1.0 X-detected-operating-system: by eggs.gnu.org: Genre and OS details not recognized. X-Received-From: 2a00:1450:4864:20::433 Subject: [Qemu-devel] [PULL 01/21] hw/arm/armsse: Fix memory leak in error-exit path 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: , Errors-To: qemu-devel-bounces+patch=linaro.org@nongnu.org Sender: "Qemu-devel" Coverity points out (CID 1398632, CID 1398650) that we leak a couple of allocated strings in the error-exit code path for setting up the MHUs in the ARMSSE. Fix this bug by moving the allocate-and-free of each string to be closer to the use, so we do the free before doing the error-exit check. Fixes: f8574705f62b38a ("hw/arm/armsse: Add unimplemented-device stubs for MHUs") Signed-off-by: Peter Maydell Reviewed-by: Philippe Mathieu-Daudé Message-id: 20190215113707.24553-1-peter.maydell@linaro.org --- hw/arm/armsse.c | 10 ++++++---- 1 file changed, 6 insertions(+), 4 deletions(-) -- 2.20.1 diff --git a/hw/arm/armsse.c b/hw/arm/armsse.c index 9a8c49547db..d0207dbabc7 100644 --- a/hw/arm/armsse.c +++ b/hw/arm/armsse.c @@ -762,26 +762,28 @@ static void armsse_realize(DeviceState *dev, Error **errp) if (info->has_mhus) { for (i = 0; i < ARRAY_SIZE(s->mhu); i++) { - char *name = g_strdup_printf("MHU%d", i); - char *port = g_strdup_printf("port[%d]", i + 3); + char *name; + char *port; + name = g_strdup_printf("MHU%d", i); qdev_prop_set_string(DEVICE(&s->mhu[i]), "name", name); qdev_prop_set_uint64(DEVICE(&s->mhu[i]), "size", 0x1000); object_property_set_bool(OBJECT(&s->mhu[i]), true, "realized", &err); + g_free(name); if (err) { error_propagate(errp, err); return; } + port = g_strdup_printf("port[%d]", i + 3); mr = sysbus_mmio_get_region(SYS_BUS_DEVICE(&s->mhu[i]), 0); object_property_set_link(OBJECT(&s->apb_ppc0), OBJECT(mr), port, &err); + g_free(port); if (err) { error_propagate(errp, err); return; } - g_free(name); - g_free(port); } }