Return-path: Received: from mail.ispras.ru ([83.149.199.45]:38502 "EHLO mail.ispras.ru" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1753629Ab3IQU6X (ORCPT ); Tue, 17 Sep 2013 16:58:23 -0400 From: Alexey Khoroshilov To: Christian Lamparter Cc: Alexey Khoroshilov , "John W. Linville" , linux-wireless@vger.kernel.org, netdev@vger.kernel.org, linux-kernel@vger.kernel.org, ldv-project@linuxtesting.org Subject: [PATCH] p54usb: fix leak at failure path in p54u_load_firmware() Date: Wed, 18 Sep 2013 00:57:59 +0400 Message-Id: <1379451479-31107-1-git-send-email-khoroshilov@ispras.ru> (sfid-20130917_225844_146468_86083377) Sender: linux-wireless-owner@vger.kernel.org List-ID: If request_firmware_nowait() fails in p54u_load_firmware(), p54u_load_firmware_cb is not called and no one decrements usb_dev refcnt. Found by Linux Driver Verification project (linuxtesting.org). Signed-off-by: Alexey Khoroshilov --- drivers/net/wireless/p54/p54usb.c | 1 + 1 file changed, 1 insertion(+) diff --git a/drivers/net/wireless/p54/p54usb.c b/drivers/net/wireless/p54/p54usb.c index b9deef6..7fa81d1 100644 --- a/drivers/net/wireless/p54/p54usb.c +++ b/drivers/net/wireless/p54/p54usb.c @@ -979,6 +979,7 @@ static int p54u_load_firmware(struct ieee80211_hw *dev, if (err) { dev_err(&priv->udev->dev, "(p54usb) cannot load firmware %s " "(%d)!\n", p54u_fwlist[i].fw, err); + usb_put_dev(udev); } return err; -- 1.8.1.2