Received: by 2002:ac0:a5a6:0:0:0:0:0 with SMTP id m35-v6csp1782848imm; Thu, 27 Sep 2018 02:23:49 -0700 (PDT) X-Google-Smtp-Source: ACcGV610I3b7a3/7NJBtPQgpprV6271cWhQNG7Hr5mfuC5Q2gDVrT/SKuYxSM7mIdfu1/65JYnQt X-Received: by 2002:a17:902:760e:: with SMTP id k14-v6mr10091673pll.185.1538040229708; Thu, 27 Sep 2018 02:23:49 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1538040229; cv=none; d=google.com; s=arc-20160816; b=CIpHP8j7HdxIppg5abQqnhZE9by5g5v7Mecvz/GaNKXWAooDwtPUqBoUdDRyV6dh8o F0xXdDP0E1sPAUiQQxYNmww4OXCTiw45kFu+flvke4iEgLSdgMmnYtOJ5Ok8lX8UzpsL uHzO+qj4988xc+19OZW5TiXLr/kaOfkA0pjtoHmU1v9SzTvaB5uiFQCb+NJuTfhWQ92d onyWWCpkGg2MotXnj8A08SbXIerrUjDkiBntbPcNutGpYJeUOq4zUp+vro8iecGu+J69 xy4M+Up5WCq0nnjSRsPpk5yogjnqX7mTLSnVmbI/ixRUa3Su5xmDAOHmge3Dwj34JS/R GnXg== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=list-id:precedence:sender:content-transfer-encoding:mime-version :user-agent:references:in-reply-to:message-id:date:subject:cc:to :from; bh=G2XGMtINkietQM0AG2j9B/qViGnlqw1MhJw6Cx0FqvI=; b=Vc6f44CnUBQoRc5aGwvJVoiH78rR8kVkorGN9u25FJeZOyw9j64HtSmdaJ0l8ESinA ZVCiNedpGDnxJBxOFQbNgkavlVw2ZhdKS0ZbnLuk4zykVJWkzi8w6PB4jog6p8Pq71l3 Jfa6VzTJZ+EBFG4xmKqLZyOLH83zjHIRb9F/5qLElx5TW737Emc2uCp71OA1KXN2sUAg bsiVbZJlWB7mlVo3QRdDKqfk1mynTKYHe+ilBR7UK+GVhpUn5CHlK905SF8ke875Y1W2 Xf/4n95XVIaWyrXjhYqKBFusmPjO9/EwLtCJIYQaBZGg8LLvlVXkeM1S//89Rk99znP9 Yoww== ARC-Authentication-Results: i=1; mx.google.com; spf=pass (google.com: best guess record for domain of linux-kernel-owner@vger.kernel.org designates 209.132.180.67 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org Return-Path: Received: from vger.kernel.org (vger.kernel.org. [209.132.180.67]) by mx.google.com with ESMTP id y21-v6si1404312pll.416.2018.09.27.02.23.34; Thu, 27 Sep 2018 02:23:49 -0700 (PDT) Received-SPF: pass (google.com: best guess record for domain of linux-kernel-owner@vger.kernel.org designates 209.132.180.67 as permitted sender) client-ip=209.132.180.67; Authentication-Results: mx.google.com; spf=pass (google.com: best guess record for domain of linux-kernel-owner@vger.kernel.org designates 209.132.180.67 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1728711AbeI0Pkl (ORCPT + 99 others); Thu, 27 Sep 2018 11:40:41 -0400 Received: from mail.linuxfoundation.org ([140.211.169.12]:56576 "EHLO mail.linuxfoundation.org" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1727241AbeI0Pkl (ORCPT ); Thu, 27 Sep 2018 11:40:41 -0400 Received: from localhost (ip-213-127-77-73.ip.prioritytelecom.net [213.127.77.73]) by mail.linuxfoundation.org (Postfix) with ESMTPSA id 4C74C1120; Thu, 27 Sep 2018 09:23:20 +0000 (UTC) From: Greg Kroah-Hartman To: linux-kernel@vger.kernel.org Cc: Greg Kroah-Hartman , stable@vger.kernel.org, Takashi Sakamoto , Takashi Iwai Subject: [PATCH 4.14 26/64] ALSA: oxfw: fix memory leak of discovered stream formats at error path Date: Thu, 27 Sep 2018 11:03:43 +0200 Message-Id: <20180927090253.832339965@linuxfoundation.org> X-Mailer: git-send-email 2.19.0 In-Reply-To: <20180927090249.801943776@linuxfoundation.org> References: <20180927090249.801943776@linuxfoundation.org> User-Agent: quilt/0.65 X-stable: review MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Sender: linux-kernel-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org 4.14-stable review patch. If anyone has any objections, please let me know. ------------------ From: Takashi Sakamoto commit 1064bc685d359f549f91c2d5f111965a9284f328 upstream. After finishing discover of stream formats, ALSA OXFW driver has memory leak of allocated memory object at error path. This commit releases the memory object at the error path. Fixes: 6c29230e2a5f ('ALSA: oxfw: delayed registration of sound card') Cc: # v4.7+ Signed-off-by: Takashi Sakamoto Signed-off-by: Takashi Iwai Signed-off-by: Greg Kroah-Hartman --- sound/firewire/oxfw/oxfw.c | 7 +++++++ 1 file changed, 7 insertions(+) --- a/sound/firewire/oxfw/oxfw.c +++ b/sound/firewire/oxfw/oxfw.c @@ -213,6 +213,7 @@ static int detect_quirks(struct snd_oxfw static void do_registration(struct work_struct *work) { struct snd_oxfw *oxfw = container_of(work, struct snd_oxfw, dwork.work); + int i; int err; if (oxfw->registered) @@ -275,6 +276,12 @@ error: snd_oxfw_stream_destroy_simplex(oxfw, &oxfw->rx_stream); if (oxfw->has_output) snd_oxfw_stream_destroy_simplex(oxfw, &oxfw->tx_stream); + for (i = 0; i < SND_OXFW_STREAM_FORMAT_ENTRIES; ++i) { + kfree(oxfw->tx_stream_formats[i]); + oxfw->tx_stream_formats[i] = NULL; + kfree(oxfw->rx_stream_formats[i]); + oxfw->rx_stream_formats[i] = NULL; + } snd_card_free(oxfw->card); kfree(oxfw->spec); oxfw->spec = NULL;