From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.4.0 (2014-02-07) on aws-us-west-2-korg-lkml-1.web.codeaurora.org X-Spam-Level: X-Spam-Status: No, score=-9.3 required=3.0 tests=DKIM_ADSP_CUSTOM_MED, DKIM_INVALID,DKIM_SIGNED,FREEMAIL_FORGED_FROMDOMAIN,FREEMAIL_FROM, HEADER_FROM_DIFFERENT_DOMAINS,INCLUDES_PATCH,MAILING_LIST_MULTI,SIGNED_OFF_BY, SPF_HELO_NONE,SPF_PASS,USER_AGENT_GIT autolearn=ham autolearn_force=no version=3.4.0 Received: from mail.kernel.org (mail.kernel.org [198.145.29.99]) by smtp.lore.kernel.org (Postfix) with ESMTP id 1215ECA9EB9 for ; Sat, 26 Oct 2019 04:26:54 +0000 (UTC) Received: from vger.kernel.org (vger.kernel.org [209.132.180.67]) by mail.kernel.org (Postfix) with ESMTP id D2530214DA for ; Sat, 26 Oct 2019 04:26:53 +0000 (UTC) Authentication-Results: mail.kernel.org; dkim=fail reason="signature verification failed" (2048-bit key) header.d=gmail.com header.i=@gmail.com header.b="gZRJSPMG" Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1725996AbfJZEZd (ORCPT ); Sat, 26 Oct 2019 00:25:33 -0400 Received: from mail-io1-f66.google.com ([209.85.166.66]:39816 "EHLO mail-io1-f66.google.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1725821AbfJZEZd (ORCPT ); Sat, 26 Oct 2019 00:25:33 -0400 Received: by mail-io1-f66.google.com with SMTP id y12so4733425ioa.6; Fri, 25 Oct 2019 21:25:33 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20161025; h=from:to:cc:subject:date:message-id; bh=rHeRkxrHD5GX5EWDlQ98vXy+a783uwWXtM2tQKGXdug=; b=gZRJSPMGxM1UPw1FdEvVFtbG4SqDkm9JN/GP92+GDY/bQVm73xFX5T2lkdkRAXJ9uw 4K927+DEPOjX0v2NhbOsDZjCOyTgg/PgzXqgwivEM6QeBnGHV0CLxMfG1XeHJninS6Jn d3HUaWWFRPVWG+u/urTqRNtrGbQyLiZdTXq6MhvYlWjtoC7vQBAz3Rn6Mb3cxkdt1/Po nUZHC0Eiw1kMMsF1PkX5MSMnY53N8J0Q3vB8vM9pSuefryXU7vr8bduXoiI452R8NKud SwAzjj4yI/LFANHdC8I/m+7ITtp+iUIKP8EtGIgHjMBdZ+gFerdXZYr/VS+jNVHKs/wb 4H6g== 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=rHeRkxrHD5GX5EWDlQ98vXy+a783uwWXtM2tQKGXdug=; b=rmvfTdm1a2c7VtsnYWtlwVg0qyEMQfFGHxiXqosXXhCvs4pG3viSHpDl/L7hO5D8vW dQcGRdXbXp09DBNImH0+Ka1jb9NMFWI/qHIkPGpS7KSGSDdwU8QeUNYgIX0noYfPKcA7 TZ/+5A1bq71UiD0TxzkFzz0Sf1YyV0062kXTqODma012h0JsRZJWXAqnIZMWPBYhc0XT wq8nEpHrSbsVnsZ4J7uepehiKit4cZBeO3b/+C8pM7oenKxUCinlsc0k6S7dg91U23Pt YT4o2uwqULKJg5PDsgM/av2rF2TEIKK0v5wF9bSxxZSJG/Pi9kVk7IIemdGfUuLWUgeb nSVA== X-Gm-Message-State: APjAAAVbugq37hNXtDg5c6BJsnstHz6WGtZnDGYbutbq4CY9H6uzu1h2 j4qJrTldkr7FLixWGHJoECA= X-Google-Smtp-Source: APXvYqwyjakLVT85RTryWMHfy6AKHouMUXRj6cegqSHqrg9AmKKAZBYTX2iEX2LdU+HgQdpe1I/m7g== X-Received: by 2002:a5d:980a:: with SMTP id a10mr7426699iol.225.1572063932870; Fri, 25 Oct 2019 21:25:32 -0700 (PDT) Received: from cs-dulles.cs.umn.edu (cs-dulles.cs.umn.edu. [128.101.35.54]) by smtp.googlemail.com with ESMTPSA id n123sm452068iod.62.2019.10.25.21.25.31 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Fri, 25 Oct 2019 21:25:32 -0700 (PDT) From: Navid Emamdoost Cc: emamd001@umn.edu, kjlu@umn.edu, smccaman@umn.edu, Navid Emamdoost , Eddie James , Mauro Carvalho Chehab , Joel Stanley , Andrew Jeffery , linux-media@vger.kernel.org, openbmc@lists.ozlabs.org, linux-arm-kernel@lists.infradead.org, linux-aspeed@lists.ozlabs.org, linux-kernel@vger.kernel.org Subject: [PATCH] media: aspeed-video: Fix memory leaks in aspeed_video_probe Date: Fri, 25 Oct 2019 23:25:18 -0500 Message-Id: <20191026042519.29446-1-navid.emamdoost@gmail.com> X-Mailer: git-send-email 2.17.1 To: unlisted-recipients:; (no To-header on input) Sender: linux-kernel-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org In the implementation of aspeed_video_probe() the allocated memory for video should be released in case of failure. Release video if either devm_ioremap_resource() or aspeed_video_init() or aspeed_video_setup_video() fails. Fixes: d2b4387f3bdf ("media: platform: Add Aspeed Video Engine driver") Signed-off-by: Navid Emamdoost --- drivers/media/platform/aspeed-video.c | 14 ++++++++++---- 1 file changed, 10 insertions(+), 4 deletions(-) diff --git a/drivers/media/platform/aspeed-video.c b/drivers/media/platform/aspeed-video.c index eb12f3793062..8c473356132d 100644 --- a/drivers/media/platform/aspeed-video.c +++ b/drivers/media/platform/aspeed-video.c @@ -1663,18 +1663,24 @@ static int aspeed_video_probe(struct platform_device *pdev) video->base = devm_ioremap_resource(video->dev, res); - if (IS_ERR(video->base)) - return PTR_ERR(video->base); + if (IS_ERR(video->base)) { + rc = PTR_ERR(video->base); + goto free_video; + } rc = aspeed_video_init(video); if (rc) - return rc; + goto free_video; rc = aspeed_video_setup_video(video); if (rc) - return rc; + goto free_video; return 0; + +free_video: + kfree(video); + return rc; } static int aspeed_video_remove(struct platform_device *pdev) -- 2.17.1