Received: by 2002:a05:6a10:9afc:0:0:0:0 with SMTP id t28csp731599pxm; Fri, 25 Feb 2022 18:36:00 -0800 (PST) X-Google-Smtp-Source: ABdhPJyDtj3NbM8q/Fh4zov9I8p2HZ6tFbO7cMpF8X91p4k8/ybn+bQrKXAVWtrJoYV4roeEsVhS X-Received: by 2002:a17:902:7b8d:b0:14f:1aca:d95e with SMTP id w13-20020a1709027b8d00b0014f1acad95emr10050865pll.122.1645842960102; Fri, 25 Feb 2022 18:36:00 -0800 (PST) ARC-Seal: i=1; a=rsa-sha256; t=1645842960; cv=none; d=google.com; s=arc-20160816; b=bezy6uwTDXN2kO3iNPBdkKsh8Wjc+Hj7RfH5L8J0YEOPBsro8WPXHFT/qP2W9yTgCT TqY9CY8/w1QBEhRm0VBRMz6SdF5ezqKPp8OenRmrxlz1etz26b4E/4K2x4xne1NrwtEZ mQNADs6sXEPykqGBhY874wdPzUxO1ci2nrsnonHAoyt9iMpr2kZcG64rSuqsOxiW7r/R Sh30HObCvvZZSgHRavPjWCmnnTCE4RJVHrrQ27l4e5HcdxdgKUDjbA+8jMpU3b1oslt5 7Ct/9/lmD2teKMWmJPeNnyWEvnU6iPsBGdfpvYPSJTPRk9TWSMlKQGv2XSK2rMtopO6T tHZQ== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=list-id:precedence:message-id:date:subject:cc:to:from :dkim-signature; bh=Z55n6Cqx+EaPx4O80f/x/Rk57EohQE86voS2AD32pXA=; b=oKZFG1ohdUSL53CFdfH5ryt1LqPuYmEv7GQlhhXdfUBtGFdoKXIFIy0k9RtCX2z0/s vzUXXxygRILLfd2Wijz1EOdjCHnUGSN9XQL/T/virfIXssB3QwxwLjQ8RMUvjqAYyYho dZ9xDOjNaWj4bzbK9MDy5T4JxiXPep9YUg3E7eEmaeSpHUpaWNVda6/AxwD9LLxFXehX ofQAezkE7p03CO8aZmd8QszBQvZDdbIUMmrQNdSztG0hW3WtuupB41zy5bCTd43niPgN qfywJXuiejlHe/b7hkv7HvhuQw/34hf13gDgZsEEesma9/2hO1dfn8RcJ3vmOdcAuT3S hhog== ARC-Authentication-Results: i=1; mx.google.com; dkim=pass header.i=@gmail.com header.s=20210112 header.b=MgF9Lot9; spf=pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 2620:137:e000::1: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 lindbergh.monkeyblade.net (lindbergh.monkeyblade.net. [2620:137:e000::1:18]) by mx.google.com with ESMTPS id t23-20020a17090aba9700b001bc44a64713si8735297pjr.112.2022.02.25.18.35.59 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Fri, 25 Feb 2022 18:36:00 -0800 (PST) Received-SPF: pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 2620:137:e000::1:18 as permitted sender) client-ip=2620:137:e000::1:18; Authentication-Results: mx.google.com; dkim=pass header.i=@gmail.com header.s=20210112 header.b=MgF9Lot9; spf=pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 2620:137:e000::1: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: from vger.kernel.org (vger.kernel.org [23.128.96.18]) by lindbergh.monkeyblade.net (Postfix) with ESMTP id B917A2FA625; Fri, 25 Feb 2022 18:01:40 -0800 (PST) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S229620AbiBYNe5 (ORCPT + 99 others); Fri, 25 Feb 2022 08:34:57 -0500 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:34470 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S229528AbiBYNex (ORCPT ); Fri, 25 Feb 2022 08:34:53 -0500 Received: from mail-wm1-x335.google.com (mail-wm1-x335.google.com [IPv6:2a00:1450:4864:20::335]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id 21EB71DB3C3 for ; Fri, 25 Feb 2022 05:34:21 -0800 (PST) Received: by mail-wm1-x335.google.com with SMTP id m13-20020a7bca4d000000b00380e379bae2so1687752wml.3 for ; Fri, 25 Feb 2022 05:34:21 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20210112; h=from:to:cc:subject:date:message-id; bh=Z55n6Cqx+EaPx4O80f/x/Rk57EohQE86voS2AD32pXA=; b=MgF9Lot9UDj7ZuOqQAoC5Ro1Hksoai8qbKZGl2nWBuiltuiq7zYXphXG4TaHjHULil ErJPNotRQyxAenLlqE/K1OQYggkePSxiD2Z/jZJmUj5zbxi+L6NDPSL6CrpCEhL//5Fb hdNq+0Tl46azkJbddbTFH8F5m0SKR0kzAyP7maZ78MVVCxe+oOKLteWt5Rw/PvbcpOoX zch7nRFn+IIdeja8qAJ8wcddavRHTMI1Ke+PBIpCz0hF66s0hENxWI2wLMk2m77+bcQN Z5FjkUEyHOQohPlpzglwPGOOPdH1f+DJmc6cINAvBoadKy5bWA0zzYdJ+Vgy+UXzZLyI ogIw== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20210112; h=x-gm-message-state:from:to:cc:subject:date:message-id; bh=Z55n6Cqx+EaPx4O80f/x/Rk57EohQE86voS2AD32pXA=; b=zNqPWkA/Af5l+E6+2GvbSVPWqWt9s+tqFMyeXovi6Kp2/4mfs/cI/9AzzlFEYP3lhC lwuC43gPcy5OxGYgmai/NHjrE0OXD/udIQR0xKp0XE8XRdQj7XhRxHQaUTGwuuvGxDT9 LFTZ92fZt1QMSx6nLnsuHCbmxoL/4ci/bsWhT54hG3LYpeEXdqUXREawJyv+U3b9Z1Rt /Vf4+DafINLw2LMAdUX8XvAs8Wqv/ZIdWto+5IMr4zkCbR1aAY57bmdFs22O/mKVGOwX U2O3zCziUvASsRToQrgQbT+sRlvN2HgxuCj0A9/6I+BO6KAIyvq+wFFgbty5YNPqQdzZ ELKQ== X-Gm-Message-State: AOAM530aZHM+obzAMAQteJ7Kb+DWN8CJbm/f9k1WUq5+WY/mPUjYyVvV W7HK95NqVFpJRvIgaGo+NDAzbemv7vjLtQ== X-Received: by 2002:a05:600c:20b:b0:381:263:b5d6 with SMTP id 11-20020a05600c020b00b003810263b5d6mr2794145wmi.73.1645796059707; Fri, 25 Feb 2022 05:34:19 -0800 (PST) Received: from localhost.localdomain ([64.64.123.58]) by smtp.gmail.com with ESMTPSA id x3-20020a5d6b43000000b001e317fb86ecsm2327469wrw.57.2022.02.25.05.34.17 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Fri, 25 Feb 2022 05:34:19 -0800 (PST) From: Jia-Ju Bai To: jerome.pouiller@silabs.com, gregkh@linuxfoundation.org Cc: linux-staging@lists.linux.dev, linux-kernel@vger.kernel.org, Jia-Ju Bai Subject: [PATCH] staging: wfx: correct error handling code in wfx_init_common() Date: Fri, 25 Feb 2022 05:34:09 -0800 Message-Id: <20220225133409.28109-1-baijiaju1990@gmail.com> X-Mailer: git-send-email 2.17.1 X-Spam-Status: No, score=-1.7 required=5.0 tests=BAYES_00,DKIM_SIGNED, DKIM_VALID,DKIM_VALID_AU,FREEMAIL_FORGED_FROMDOMAIN,FREEMAIL_FROM, HEADER_FROM_DIFFERENT_DOMAINS,MAILING_LIST_MULTI,RDNS_NONE, SPF_HELO_NONE,T_SCC_BODY_TEXT_LINE autolearn=no autolearn_force=no version=3.4.6 X-Spam-Checker-Version: SpamAssassin 3.4.6 (2021-04-09) on lindbergh.monkeyblade.net Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org In wfx_init_common(), devm_kmalloc() can fail, so its return value should be checked. Moreover, in error handling code, ieee80211_free_hw() should be called to free the memory allocated by ieee80211_alloc_hw(). Fixes: 40115bbc40e2 ("staging: wfx: implement the rest of mac80211 API") Reported-by: TOTE Robot Signed-off-by: Jia-Ju Bai --- drivers/staging/wfx/main.c | 12 ++++++++++-- 1 file changed, 10 insertions(+), 2 deletions(-) diff --git a/drivers/staging/wfx/main.c b/drivers/staging/wfx/main.c index 858d778cc589..ebc6c7db8d63 100644 --- a/drivers/staging/wfx/main.c +++ b/drivers/staging/wfx/main.c @@ -307,6 +307,10 @@ struct wfx_dev *wfx_init_common(struct device *dev, hw->wiphy->n_iface_combinations = ARRAY_SIZE(wfx_iface_combinations); hw->wiphy->iface_combinations = wfx_iface_combinations; hw->wiphy->bands[NL80211_BAND_2GHZ] = devm_kmalloc(dev, sizeof(wfx_band_2ghz), GFP_KERNEL); + if (!hw->wiphy->bands[NL80211_BAND_2GHZ]) { + ieee80211_free_hw(hw); + return NULL; + } /* FIXME: also copy wfx_rates and wfx_2ghz_chantable */ memcpy(hw->wiphy->bands[NL80211_BAND_2GHZ], &wfx_band_2ghz, sizeof(wfx_band_2ghz)); @@ -321,8 +325,10 @@ struct wfx_dev *wfx_init_common(struct device *dev, &wdev->pdata.file_pds); wdev->pdata.gpio_wakeup = devm_gpiod_get_optional(dev, "wakeup", GPIOD_OUT_LOW); - if (IS_ERR(wdev->pdata.gpio_wakeup)) + if (IS_ERR(wdev->pdata.gpio_wakeup)) { + ieee80211_free_hw(hw); return NULL; + } if (wdev->pdata.gpio_wakeup) gpiod_set_consumer_name(wdev->pdata.gpio_wakeup, "wfx wakeup"); @@ -337,8 +343,10 @@ struct wfx_dev *wfx_init_common(struct device *dev, wfx_init_hif_cmd(&wdev->hif_cmd); wdev->force_ps_timeout = -1; - if (devm_add_action_or_reset(dev, wfx_free_common, wdev)) + if (devm_add_action_or_reset(dev, wfx_free_common, wdev)) { + ieee80211_free_hw(hw); return NULL; + } return wdev; } -- 2.17.1