From patchwork Mon Oct 29 10:41:35 2018 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Jens Wiklander X-Patchwork-Id: 149653 Delivered-To: patch@linaro.org Received: by 2002:a2e:299d:0:0:0:0:0 with SMTP id p29-v6csp3960949ljp; Mon, 29 Oct 2018 03:41:56 -0700 (PDT) X-Google-Smtp-Source: AJdET5d0Knl9k+2v3/T/zKCiKWVLh6tPhpB9d+7VB8hDezHh2wxDIuE0Wk0f5RvZ7WyTxNd8A/0a X-Received: by 2002:a17:906:b385:: with SMTP id o5-v6mr10166652ejz.124.1540809716068; Mon, 29 Oct 2018 03:41:56 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1540809716; cv=none; d=google.com; s=arc-20160816; b=arrzKpuiYyUH1s7dwJEmOkNYDtkhc7v6SXMmMdZlJ1VETylCXr9pv8TSRQCkPRaf13 5EnL6eGcdAs0IpomDHFj5/OYzqBX4pjkqXaCR47aRvvHngG068K7fUkYYB6Izxl1exzl 728H8V5qHx9g6DUx/wGdYqX/exvfpIvicPaowSdtLBB+AJ/NZcyuaP4MJ13zKOcoL9Bd iuuHlcgbRS/NIAzQBW0zImSxtA9HT8vqaSC8eZ3YTp3YB/I4MquUokMQuzSlsiYOQv1O MEc4P3XV6zSuE8BtB0OPoGKGZVs/019JqdS+t2iANTNttR2bRG56CjOiCM0DnC+2G91t D4ow== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=sender:errors-to:content-transfer-encoding:mime-version :list-subscribe:list-help:list-post:list-archive:list-unsubscribe :list-id:precedence:subject:cc:message-id:date:to:from :dkim-signature; bh=N4zGgRXOakBM784+hiLIQOtSTtObqUBnX68iXXkeVp8=; b=Cc7lQF0nEH7Gxv6LufFzQoaiiO7gpm8Qa1h35nqBTlwaBsOU8sKwH73G9rsz67/G9a I316Tji71FUPdwFvkyEH9sbDBLd3Th9y/WcQwsmWL9MvNGrLrF7ra3gCi3qOdzeUtskS NonrwHSxg8cHZGBlvoI355AhXzAizVUjiDhR2cpUD0AyeHFpACqYNhG+yGdtwPas0kUX xVDryk2Fa+bq5VBfEWQt253U/S9dzBhaqIIn0/TQ6lgfQgf7meb3pclrQlyKxtoJkziA 5gE6AZNf8nkeCfUNPgB306wW/jUNGQ7FR+LdcAs6DMDSnidh2bhFPSDRKVYLGF7kXEWr q13A== ARC-Authentication-Results: i=1; mx.google.com; dkim=neutral (body hash did not verify) header.i=@linaro.org header.s=google header.b=Opv33IBF; spf=pass (google.com: best guess record for domain of u-boot-bounces@lists.denx.de designates 81.169.180.215 as permitted sender) smtp.mailfrom=u-boot-bounces@lists.denx.de; dmarc=fail (p=NONE sp=NONE dis=NONE) header.from=linaro.org Return-Path: Received: from lists.denx.de (dione.denx.de. [81.169.180.215]) by mx.google.com with ESMTP id e9-v6si2813102edd.340.2018.10.29.03.41.55; Mon, 29 Oct 2018 03:41:56 -0700 (PDT) Received-SPF: pass (google.com: best guess record for domain of u-boot-bounces@lists.denx.de designates 81.169.180.215 as permitted sender) client-ip=81.169.180.215; Authentication-Results: mx.google.com; dkim=neutral (body hash did not verify) header.i=@linaro.org header.s=google header.b=Opv33IBF; spf=pass (google.com: best guess record for domain of u-boot-bounces@lists.denx.de designates 81.169.180.215 as permitted sender) smtp.mailfrom=u-boot-bounces@lists.denx.de; dmarc=fail (p=NONE sp=NONE dis=NONE) header.from=linaro.org Received: by lists.denx.de (Postfix, from userid 105) id 7C5E3C21FAB; Mon, 29 Oct 2018 10:41:54 +0000 (UTC) X-Spam-Checker-Version: SpamAssassin 3.4.0 (2014-02-07) on lists.denx.de X-Spam-Level: X-Spam-Status: No, score=0.0 required=5.0 tests=RCVD_IN_DNSWL_BLOCKED, RCVD_IN_MSPIKE_H2, T_DKIM_INVALID autolearn=unavailable autolearn_force=no version=3.4.0 Received: from lists.denx.de (localhost [IPv6:::1]) by lists.denx.de (Postfix) with ESMTP id 187F1C21F6A; Mon, 29 Oct 2018 10:41:52 +0000 (UTC) Received: by lists.denx.de (Postfix, from userid 105) id C66FAC21F6A; Mon, 29 Oct 2018 10:41:50 +0000 (UTC) Received: from mail-lj1-f194.google.com (mail-lj1-f194.google.com [209.85.208.194]) by lists.denx.de (Postfix) with ESMTPS id 66798C21E2B for ; Mon, 29 Oct 2018 10:41:50 +0000 (UTC) Received: by mail-lj1-f194.google.com with SMTP id g8-v6so4369179ljk.1 for ; Mon, 29 Oct 2018 03:41:50 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=linaro.org; s=google; h=from:to:cc:subject:date:message-id; bh=w/48hS8WSQ6BJ50XH2TCb91xGbVohHki4q9wy5UeIz4=; b=Opv33IBFedhSe0Wd8WkUMJRHyPCCiGdAyIg1+X8ZVQGArQjoNorHoNB/8G9WX/OfCA uaPXUBP0t+3sdB38sC+XsNEhlUPS2+8MuT0cpET2Nd3yPFc1pvYZFzk7acyxkyga7Ekt xQwOUeTd8JmCROU9h2ExXKgYeh5Tyg5abK9y4= 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; bh=w/48hS8WSQ6BJ50XH2TCb91xGbVohHki4q9wy5UeIz4=; b=HHCEd2m1Q0k0LjF3lfjSCYWC9HyY5iyAEkEQeuCMqNnCLLyeFmCPZsA+9e8HO1/RLl dBQjlgy77vDQjCzhneF9hbmmZ4vN/ieoELdk+y5JYC5rt7lFQrcJuKm4KBePOSzspkuT I4peuL+KWv3Qkx3+zlZ5AVq8ChxS1UaQf3aKXOhMOZbwEhoNxX17DCZtmuz58HeEnk/n M/srDzDQQlc2/Ia5W4MSEwNeidoK2ev/pEZyS3e6OX4c+UqpeuMV9l5VcRf1GRlDYXac 3DgeJAqrmf9jP/h2WMHpAkEWaSjR5rSK0ksGzdYPqcBoaNY/7SE5MNzDWTthY7zbBg20 ASOA== X-Gm-Message-State: AGRZ1gKaa/ly4HimjaaHMlRqdZbaK0cH8Woqwoxk10n4Ay2KjFkeLGfJ 3Ho3BWUakfmX5lBS+gXgJ+z7fA== X-Received: by 2002:a2e:215a:: with SMTP id h87-v6mr9822811ljh.102.1540809709716; Mon, 29 Oct 2018 03:41:49 -0700 (PDT) Received: from jax.urgonet (h-84-105.A175.priv.bahnhof.se. [79.136.84.105]) by smtp.gmail.com with ESMTPSA id q69sm375730lfg.1.2018.10.29.03.41.48 (version=TLS1_2 cipher=ECDHE-RSA-AES128-GCM-SHA256 bits=128/128); Mon, 29 Oct 2018 03:41:49 -0700 (PDT) From: Jens Wiklander To: Simon Glass Date: Mon, 29 Oct 2018 11:41:35 +0100 Message-Id: <20181029104135.31127-1-jens.wiklander@linaro.org> X-Mailer: git-send-email 2.17.1 Cc: Tom Rini , u-boot@lists.denx.de Subject: [U-Boot] [PATCH] test: tee: fix resource leak in dm_test_tee() X-BeenThere: u-boot@lists.denx.de X-Mailman-Version: 2.1.18 Precedence: list List-Id: U-Boot discussion List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , MIME-Version: 1.0 Errors-To: u-boot-bounces@lists.denx.de Sender: "U-Boot" Fixes possible resource leak in dm_test_tee() reported by Coverity. Reported-by: Coverity (CID: 184175) Signed-off-by: Jens Wiklander --- test/dm/tee.c | 35 ++++++++++++++++++++++++++--------- 1 file changed, 26 insertions(+), 9 deletions(-) diff --git a/test/dm/tee.c b/test/dm/tee.c index 13e3f4003a7d..22f05a421978 100644 --- a/test/dm/tee.c +++ b/test/dm/tee.c @@ -49,7 +49,12 @@ static int match(struct tee_version_data *vers, const void *data) return vers->gen_caps & TEE_GEN_CAP_GP; } -static int dm_test_tee(struct unit_test_state *uts) +struct test_tee_vars { + struct tee_shm *reg_shm; + struct tee_shm *alloc_shm; +}; + +static int test_tee(struct unit_test_state *uts, struct test_tee_vars *vars) { struct tee_version_data vers; struct udevice *dev; @@ -57,8 +62,6 @@ static int dm_test_tee(struct unit_test_state *uts) u32 session = 0; int rc; u8 data[128]; - struct tee_shm *reg_shm; - struct tee_shm *alloc_shm; dev = tee_find_device(NULL, match, NULL, &vers); ut_assert(dev); @@ -77,22 +80,36 @@ static int dm_test_tee(struct unit_test_state *uts) ut_assert(!state->session); ut_assert(!state->num_shms); - rc = tee_shm_register(dev, data, sizeof(data), 0, ®_shm); + rc = tee_shm_register(dev, data, sizeof(data), 0, &vars->reg_shm); ut_assert(!rc); ut_assert(state->num_shms == 1); - rc = tee_shm_alloc(dev, 256, 0, &alloc_shm); + rc = tee_shm_alloc(dev, 256, 0, &vars->alloc_shm); ut_assert(!rc); ut_assert(state->num_shms == 2); - ut_assert(tee_shm_is_registered(reg_shm, dev)); - ut_assert(tee_shm_is_registered(alloc_shm, dev)); + ut_assert(tee_shm_is_registered(vars->reg_shm, dev)); + ut_assert(tee_shm_is_registered(vars->alloc_shm, dev)); - tee_shm_free(reg_shm); - tee_shm_free(alloc_shm); + tee_shm_free(vars->reg_shm); + vars->reg_shm = NULL; + tee_shm_free(vars->alloc_shm); + vars->alloc_shm = NULL; ut_assert(!state->num_shms); return 0; } +static int dm_test_tee(struct unit_test_state *uts) +{ + struct test_tee_vars vars = { NULL, NULL }; + int rc = test_tee(uts, &vars); + + /* In case test_tee() asserts these may still remain allocated */ + tee_shm_free(vars.reg_shm); + tee_shm_free(vars.alloc_shm); + + return rc; +} + DM_TEST(dm_test_tee, DM_TESTF_SCAN_FDT);