Groups | Search | Server Info | Keyboard shortcuts | Login | Register [http] [https] [nntp] [nntps]


Groups > linux.kernel > #1343567

Re: [PATCH][V2] mt7601u: do not free dma_buf when ivp allocation fails

Path csiph.com!aioe.org!bofh.it!news.nic.it!robomod
From Julian Calaby <julian.calaby@gmail.com>
Newsgroups linux.kernel
Subject Re: [PATCH][V2] mt7601u: do not free dma_buf when ivp allocation fails
Date Fri, 26 Feb 2016 00:20:01 +0100
Message-ID <r6dmp-2FR-3@gated-at.bofh.it> (permalink)
References <r6dmp-2FR-1@gated-at.bofh.it>
X-Original-To Colin King <colin.king@canonical.com>
Dkim-Signature v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20120113; h=mime-version:in-reply-to:references:from:date:message-id:subject:to :cc; bh=xmqrt1/wnkCZcGNSoi1zc3lsd/Zi4lhH49tVlS1ygGU=; b=AIH19u5ZWovLJ8X5PRAFWg45qRb+CZnUj94RYtsmHD+8fNTef2fs5ePe7au39yShkV dkElDUtbEEWrKrY1UjOOYs1FS+UzlrAW52LkBS+QwVeMksgu+R15AcSX6y2Mmy9xDvKZ FqSN1HTSniZzVZuKN6l2nEkdMA07Ria/zyDa7/jdxPRR65x7DMonanZiVn/dWtaBYyk6 4S5JY3yjZOM6U1slVkJYZyvgiZ4hb+uxdBg7EwdgJapxzRPAWc7MJkL61BM5n+zpRIUy ldPxuxqhPqrOBFvDuRrzFx+tmAeHzMf4UyF0VHdShUc2+NHaIUmptZ8YksEuYy1P+Bva iz3w==
X-Google-Dkim-Signature v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20130820; h=x-gm-message-state:mime-version:in-reply-to:references:from:date :message-id:subject:to:cc; bh=xmqrt1/wnkCZcGNSoi1zc3lsd/Zi4lhH49tVlS1ygGU=; b=f7GHtXT+oJd0JyDyDL2oT+OSabmALsondl4rBW94nFUmgFIS4ZDGlbpXiMDFLtE+JH t7bp2l0o24nw63snfhE77XCGQ1ltYJsn2gjhgvxWPSqKJY0JuK6kRU+tOY1BhKqejq9L AZSXj5l4cTr4CZN5wF+YBW3RNJP+ey/QT1VPOkf1C8z8WL90Ye4Y0yUwn1w7JOHw4REY 5mzF+NlDE6Ie1lIkkdK/9i50mOf9JlNCMCmbnHvdH1K82EkKAmswdndor2ItCP0vqXPH CbfVO//6aXRModNRF5NXb+oAgsX7nRdTdkkwq82KCIDvNoau5TChZPe/GA5vMBd9iZTq Alxg==
X-Gm-Message-State AG10YORJ/LmXQhE3yNieZsmzNeZUK2M+iQHXgDg3McPpE26GHog5YPkOTiSVJQxG1/RWaKopMDrf5H8N2MlYKA==
X-Received by 10.107.134.35 with SMTP id i35mr5718269iod.95.1456442118435; Thu, 25 Feb 2016 15:15:18 -0800 (PST)
MIME-Version 1.0
Content-Type text/plain; charset=UTF-8
Sender robomod@news.nic.it
List-ID <linux-kernel.vger.kernel.org>
X-Mailing-List linux-kernel@vger.kernel.org
Approved robomod@news.nic.it
Lines 41
Organization linux.* mail to news gateway
X-Original-Cc Jakub Kicinski <kubakici@wp.pl>, Kalle Valo <kvalo@codeaurora.org>, Matthias Brugger <matthias.bgg@gmail.com>, linux-wireless <linux-wireless@vger.kernel.org>, netdev <netdev@vger.kernel.org>, "Mailing List, Arm" <linux-arm-kernel@lists.infradead.org>, linux-mediatek@lists.infradead.org, "linux-kernel@vger.kernel.org" <linux-kernel@vger.kernel.org>
X-Original-Date Fri, 26 Feb 2016 10:14:59 +1100
X-Original-Message-ID <CAGRGNgX0323K81mi_7yyUu18-CB6=GTrMM0J72iuYPBv9JD88g@mail.gmail.com>
X-Original-References <1456441799-19266-1-git-send-email-colin.king@canonical.com>
X-Original-Sender linux-kernel-owner@vger.kernel.org
Xref csiph.com linux.kernel:1343567

Show key headers only | View raw


Hi Colin,

On Fri, Feb 26, 2016 at 10:09 AM, Colin King <colin.king@canonical.com> wrote:
> From: Colin Ian King <colin.king@canonical.com>
>
> If the allocation of ivp fails the error handling attempts to
> free an uninitialized dma_buf; this data structure just contains
> garbage on the stack, so the freeing will cause issues when the
> urb, buf and dma fields are free'd. Fix this by not free'ing the
> dma_buf if the ivp allocation fails.
>
> Signed-off-by: Colin Ian King <colin.king@canonical.com>
> ---
>  drivers/net/wireless/mediatek/mt7601u/mcu.c | 6 +++---
>  1 file changed, 3 insertions(+), 3 deletions(-)
>
> diff --git a/drivers/net/wireless/mediatek/mt7601u/mcu.c b/drivers/net/wireless/mediatek/mt7601u/mcu.c
> index fbb1986..70e4b5e 100644
> --- a/drivers/net/wireless/mediatek/mt7601u/mcu.c
> +++ b/drivers/net/wireless/mediatek/mt7601u/mcu.c
> @@ -362,10 +362,10 @@ mt7601u_upload_firmware(struct mt7601u_dev *dev, const struct mt76_fw *fw)
>         int i, ret;
>
>         ivb = kmemdup(fw->ivb, sizeof(fw->ivb), GFP_KERNEL);
> -       if (!ivb || mt7601u_usb_alloc_buf(dev, MCU_FW_URB_SIZE, &dma_buf)) {
> -               ret = -ENOMEM;
> +       if (!ivb)
> +               return -ENOMEM;
> +       if (mt7601u_usb_alloc_buf(dev, MCU_FW_URB_SIZE, &dma_buf))
>                 goto error;

Are you sure this is right? Isn't ret unset here and consequently
returned at the end of the error label?

Thanks,

-- 
Julian Calaby

Email: julian.calaby@gmail.com
Profile: http://www.google.com/profiles/julian.calaby/

Back to linux.kernel | Previous | Next — Previous in thread | Find similar | Unroll thread


Thread

[PATCH][V2] mt7601u: do not free dma_buf when ivp allocation fails Colin King <colin.king@canonical.com> - 2016-02-26 00:20 +0100
  Re: [PATCH][V2] mt7601u: do not free dma_buf when ivp allocation fails Julian Calaby <julian.calaby@gmail.com> - 2016-02-26 00:20 +0100

csiph-web