From patchwork Mon Apr 2 08:42:39 2018 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Simon Glass X-Patchwork-Id: 894134 X-Patchwork-Delegate: trini@ti.com Return-Path: X-Original-To: incoming@patchwork.ozlabs.org Delivered-To: patchwork-incoming@bilbo.ozlabs.org Authentication-Results: ozlabs.org; spf=none (mailfrom) smtp.mailfrom=lists.denx.de (client-ip=81.169.180.215; helo=lists.denx.de; envelope-from=u-boot-bounces@lists.denx.de; receiver=) Authentication-Results: ozlabs.org; dmarc=fail (p=none dis=none) header.from=chromium.org Authentication-Results: ozlabs.org; dkim=fail reason="signature verification failed" (2048-bit key; unprotected) header.d=google.com header.i=@google.com header.b="XTeq+YLq"; dkim-atps=neutral Received: from lists.denx.de (dione.denx.de [81.169.180.215]) by ozlabs.org (Postfix) with ESMTP id 40F5Mm3HZ9z9s28 for ; Mon, 2 Apr 2018 18:42:58 +1000 (AEST) Received: by lists.denx.de (Postfix, from userid 105) id 3243EC21E73; Mon, 2 Apr 2018 08:42:48 +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_H3, RCVD_IN_MSPIKE_WL, 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 21ADEC21DFA; Mon, 2 Apr 2018 08:42:46 +0000 (UTC) Received: by lists.denx.de (Postfix, from userid 105) id 78751C21DFA; Mon, 2 Apr 2018 08:42:45 +0000 (UTC) Received: from mail-oi0-f67.google.com (mail-oi0-f67.google.com [209.85.218.67]) by lists.denx.de (Postfix) with ESMTPS id DFEAEC21C3F for ; Mon, 2 Apr 2018 08:42:44 +0000 (UTC) Received: by mail-oi0-f67.google.com with SMTP id j143-v6so12270873oih.11 for ; Mon, 02 Apr 2018 01:42:44 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=20161025; h=sender:from:to:cc:subject:date:message-id; bh=X5s2OlCwkGVBrSy5x+enGL83CtYk1fZQUwDbl4KMh1g=; b=XTeq+YLq3Z4/p+lCWbdPotpAvOEQg35J+iqA1U0gJh1jSYvCRYTR06sZmtzYOIpo4n fJI3PJSx8cBslGPMPqyVDvfMVoCamrMWvCkX8lQx/QvPqW5DX6cd0FYsfrQ/etLRhIA3 i17PmTiwkmVndYOjhJWyf0MU4CkaRh3heUvTbhKOc8lXhAWodxVOHl9I86wMZivsPlmu /AJHcjRnQ1qbWVfT3E7Fppckno+45lWMumd0rrO1H/j0xnYsJo/k58TqcfojBIUuBXoI JJsR5Pw9bsMpAkzElJjAFQc2JbDOzrvFjiHbNh9eK/LJYrktE3PsiGfzIj0J1ltwoCoN 17Ag== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:sender:from:to:cc:subject:date:message-id; bh=X5s2OlCwkGVBrSy5x+enGL83CtYk1fZQUwDbl4KMh1g=; b=WUc8kv8caYbP8vXj5zbDT7jF1r+l1uyajOkHIE28G6DsxVXDflqA3ouhKkN+mGRKym iWulEm7TUck0mJYtCEryO+jbb17ItZkwDqWcPyUT3yVr2JO+qe/podjFpzBPQg4UgpdA +1eQ3QgLTg0zXwY+gKnbNtwToeb9LSChCaOwHPvLZ+MWMrlscjBukZprPo5v9YibL5nV si99X5IjwQSx6QQRJN4NNy4t4WjZPfXkDJOTJsoCAmM3sVEV4lXHwzHWoPR/q15qS4ul Ee/w5dtn3h/QsEsQoUSvl0k8QEzY5HpNilWMqX7KZnEq7SoezBcSda1igcxgyzXpNnjT k9Bw== X-Gm-Message-State: ALQs6tCPKqcxVUPxxZxLTrei8kdjP4WF+vQgRC6cDFArgM9XdJBHlfwt O1flJCDgZgnq7zAgtKX9Mjor3A== X-Google-Smtp-Source: AIpwx48Jh6AbT/Md4Z9oP2lH6KC54K0lF2kAndwW4BM2sOlzTHsHrxeQihtAfGsMNpsjn1Sl53aXZA== X-Received: by 2002:aca:afc7:: with SMTP id y190-v6mr4917441oie.285.1522658563132; Mon, 02 Apr 2018 01:42:43 -0700 (PDT) Received: from kiwi.bld.corp.google.com ([100.67.80.24]) by smtp.gmail.com with ESMTPSA id x4-v6sm8718769otx.13.2018.04.02.01.42.42 (version=TLS1_2 cipher=ECDHE-RSA-CHACHA20-POLY1305 bits=256/256); Mon, 02 Apr 2018 01:42:42 -0700 (PDT) Received: by kiwi.bld.corp.google.com (Postfix, from userid 121222) id 1D5721436B7; Mon, 2 Apr 2018 02:42:40 -0600 (MDT) From: Simon Glass To: U-Boot Mailing List Date: Mon, 2 Apr 2018 02:42:39 -0600 Message-Id: <20180402084240.252233-1-sjg@chromium.org> X-Mailer: git-send-email 2.17.0.rc1.321.gba9d0f2565-goog Cc: Tom Rini Subject: [U-Boot] [PATCH] log: Correct missing free() on error in log_add_filter() 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" If there is a problem with the parameters to log_add_filter(), the memory allocated is currently not freed. Fix this. Reported-by: Coverity (CID: 171962) Signed-off-by: Simon Glass --- common/log.c | 17 +++++++++++------ 1 file changed, 11 insertions(+), 6 deletions(-) diff --git a/common/log.c b/common/log.c index 680a60f86e..66d5e3ebf8 100644 --- a/common/log.c +++ b/common/log.c @@ -224,6 +224,7 @@ int log_add_filter(const char *drv_name, enum log_category_t cat_list[], { struct log_filter *filt; struct log_device *ldev; + int ret; int i; ldev = log_device_find_by_name(drv_name); @@ -236,8 +237,10 @@ int log_add_filter(const char *drv_name, enum log_category_t cat_list[], if (cat_list) { filt->flags |= LOGFF_HAS_CAT; for (i = 0; ; i++) { - if (i == ARRAY_SIZE(filt->cat_list)) - return -ENOSPC; + if (i == ARRAY_SIZE(filt->cat_list)) { + ret = -ENOSPC; + goto err; + } filt->cat_list[i] = cat_list[i]; if (cat_list[i] == LOGC_END) break; @@ -246,17 +249,19 @@ int log_add_filter(const char *drv_name, enum log_category_t cat_list[], filt->max_level = max_level; if (file_list) { filt->file_list = strdup(file_list); - if (!filt->file_list) - goto nomem; + if (!filt->file_list) { + ret = ENOMEM; + goto err; + } } filt->filter_num = ldev->next_filter_num++; list_add_tail(&filt->sibling_node, &ldev->filter_head); return filt->filter_num; -nomem: +err: free(filt); - return -ENOMEM; + return ret; } int log_remove_filter(const char *drv_name, int filter_num)