Received: by 2002:a05:6902:102b:0:0:0:0 with SMTP id x11csp1477706ybt; Sat, 11 Jul 2020 11:20:04 -0700 (PDT) X-Google-Smtp-Source: ABdhPJyVuYnLsHl7MhvEPz3f0qSiGL2dZ5wmeKjKVMpsblXw1zJY619OEEBiAP1BvurPkLtvS679 X-Received: by 2002:a17:906:dce:: with SMTP id p14mr64774827eji.442.1594491604326; Sat, 11 Jul 2020 11:20:04 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1594491604; cv=none; d=google.com; s=arc-20160816; b=L8UyaI2uxgKsI2qQeHqfz1enQL4THR9mer261HqDBxyVCzuXQ3FcGoNVGjcs4tNGbW 6JSxJ5ufbc4gkAqapkaEtN96HeF0N4YXaQSVJIl2fDvCXX+RTZhYGHTCjs9hlxaJCfMu ubleGxmDVOHCxNTVMMbqhDWL3rNhZqNG1vzIIXrYSx56PjVzehARyO8xYD6ddQlb9LiZ CjGyFu596J2YCOnVkKsVHd3gXPtBhqIyYLpnlUG7OqcK0f+XGBKnZcBm+pGcLCv4MC2K lwXamgvt0yCl73zNBOYcvgQqOLv+nD5kuTLhBMZ4ejmPw567uYP6IOKG4lVbZdOrYA/A xJxw== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=list-id:precedence:sender:cc:to:subject:message-id:date:from :in-reply-to:references:mime-version:dkim-signature; bh=geu2kZgahNe9b5KHjjbh7SFWlsAj55pE2E75iM1ych0=; b=BLhOWjs4ypROqng1ADN84TsbbVAshfKzRw4qblm02bQWqX4L5VfJMqAZhsivg66UFk wuZdXvYDvzpyKwqCCAezwiJnIJ2oWNcKAsJtz+IHkXpDB4+hZA3qKTV2S/Me+LuDGrHf BTcNbOvbJYmbn9MIr/OJM/wDEVoB53FplmztpGbr9dp6X6tlTdWDgMM8uVo1+EiL0v61 3yiP6MdL0oq2vbsunyZTTeLFUKPtiG+AVn1wXLXjzMKLeAswDGtrrC364N0FQF0VBBqu YQoWm3ZKjvsutFmGydqPEkn+8is1xHQINrtQltDLB66p+kMKAq6sExDExkQkiKQr8m29 nuvQ== ARC-Authentication-Results: i=1; mx.google.com; dkim=pass header.i=@gmail.com header.s=20161025 header.b=X0fjdQ81; spf=pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 23.128.96.18 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org; dmarc=pass (p=NONE sp=QUARANTINE dis=NONE) header.from=gmail.com Return-Path: Received: from vger.kernel.org (vger.kernel.org. [23.128.96.18]) by mx.google.com with ESMTP id dn13si5972036edb.186.2020.07.11.11.19.42; Sat, 11 Jul 2020 11:20:04 -0700 (PDT) Received-SPF: pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 23.128.96.18 as permitted sender) client-ip=23.128.96.18; Authentication-Results: mx.google.com; dkim=pass header.i=@gmail.com header.s=20161025 header.b=X0fjdQ81; spf=pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 23.128.96.18 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org; dmarc=pass (p=NONE sp=QUARANTINE dis=NONE) header.from=gmail.com Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1728727AbgGKSQ3 (ORCPT + 99 others); Sat, 11 Jul 2020 14:16:29 -0400 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:45530 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1728507AbgGKSQ2 (ORCPT ); Sat, 11 Jul 2020 14:16:28 -0400 Received: from mail-il1-x142.google.com (mail-il1-x142.google.com [IPv6:2607:f8b0:4864:20::142]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id 9AB6AC08C5DD for ; Sat, 11 Jul 2020 11:16:28 -0700 (PDT) Received: by mail-il1-x142.google.com with SMTP id h16so7800373ilj.11 for ; Sat, 11 Jul 2020 11:16:28 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20161025; h=mime-version:references:in-reply-to:from:date:message-id:subject:to :cc; bh=geu2kZgahNe9b5KHjjbh7SFWlsAj55pE2E75iM1ych0=; b=X0fjdQ810z3wTjdJay1KUkowDb+URPCThXgTUgZ5mxV3PJ/aSIF+bJ8IUiYLEQk/hj rmwx5PF05Q+ZQtt3tlCafxCUtsZjGcrC2pjuB0JUr250pGqXsjAXx3JQKtnFs2ptrq+m 6TFqO0jMjPL/6Mw8cqInWtgJZ3VV2qOubS1m6JnkIPszLALgig0co7MQ6npyfWtRSjJp cnWUSkaVlNuZYU40L8cyKAL2ozPDGuX9wuu/6+QfsfmxYgJE2oED3KA8HDmi65MtO50d 18j7CRCshuNJMX43CGDQj2UJ4gdPJadD8xOg1/CYUI6/h3NGL3EsQhY2ofFCVdgpagSt YMqw== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:mime-version:references:in-reply-to:from:date :message-id:subject:to:cc; bh=geu2kZgahNe9b5KHjjbh7SFWlsAj55pE2E75iM1ych0=; b=RWh6s22NMU0lcgTefezj+EjSzNTVd08EQnKcX3sFxcsoyyCEuHLKe7NZ5vjw85+LRX UhCtcepZ5Y1ujZlQfv5Tcxvc8QWFqwsrCT4FJruu4/Y81GudDl4c8ChAoR/Xy2NvFdth iZ8OsNQnsmKpxGBqIS4UxlWamNOVyYAh6Y5CnXZQJ/W6Fwj5t8pTbnQeWP34dHrrEaPT c9QJiCba5balDN4A6IO4VieYUfvfngZ++aKv+6MjFBqnV/Uuv4I+bP3XPaduUJryaMSL odiKrv80z1tyAYmAA6Q09c3Cibkeesy6FCQ6n3IKyGW8Y1lqR9vi7mCVIEDRFqAqfS0U VVuA== X-Gm-Message-State: AOAM532c0BNadh82rTbFp/jK0Pv6lMu+SpcHB2bJ10O7kDFJ4vvhhrSv GhsenGDl7m1iCw08WK7JeO0V1mgdC6ZRuC8yQug= X-Received: by 2002:a92:1547:: with SMTP id v68mr28974624ilk.294.1594491387694; Sat, 11 Jul 2020 11:16:27 -0700 (PDT) MIME-Version: 1.0 References: <20200711070835.4855-1-navid.emamdoost@gmail.com> In-Reply-To: From: Navid Emamdoost Date: Sat, 11 Jul 2020 13:16:16 -0500 Message-ID: Subject: Re: [PATCH] ALSA: trident: Fix a memory leak in snd_trident_create To: Takashi Iwai Cc: Jaroslav Kysela , Takashi Iwai , alsa-devel@alsa-project.org, LKML , Navid Emamdoost , Kangjie Lu , Stephen McCamant Content-Type: text/plain; charset="UTF-8" Sender: linux-kernel-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org On Sat, Jul 11, 2020 at 4:04 AM Takashi Iwai wrote: > > On Sat, 11 Jul 2020 09:08:30 +0200, > Navid Emamdoost wrote: > > > > In the implementation of snd_trident_create(), the allocated trident is > > leaked if snd_trident_mixer() fails. Release via snd_trident_free(). > > No, this patch would result in double-free. > > The manual release of trident object isn't needed once after it gets > added via snd_device_new(). Then it'll be automatically released at > the error path (via snd_trident_dev_free()). Thanks for the clarification. > > > thanks, > > Takashi > > > > > Fixes: 1da177e4c3f4 ("Linux-2.6.12-rc2") > > Signed-off-by: Navid Emamdoost > > --- > > sound/pci/trident/trident_main.c | 5 ++++- > > 1 file changed, 4 insertions(+), 1 deletion(-) > > > > diff --git a/sound/pci/trident/trident_main.c b/sound/pci/trident/trident_main.c > > index 6e50376163a2..e98c692f6aa9 100644 > > --- a/sound/pci/trident/trident_main.c > > +++ b/sound/pci/trident/trident_main.c > > @@ -3582,8 +3582,11 @@ int snd_trident_create(struct snd_card *card, > > return err; > > } > > > > - if ((err = snd_trident_mixer(trident, pcm_spdif_device)) < 0) > > + err = snd_trident_mixer(trident, pcm_spdif_device); > > + if (err < 0) { > > + snd_trident_free(trident); > > return err; > > + } > > > > /* initialise synth voices */ > > for (i = 0; i < 64; i++) { > > -- > > 2.17.1 > > -- Navid.