From mboxrd@z Thu Jan 1 00:00:00 1970 From: Jiecheng Wu Subject: [PATCH] fm10k_main.c: fix missing return value check of alloc_skb() Date: Sat, 18 Aug 2018 10:00:58 +0800 Message-ID: <20180818020058.14652-1-jasonwood2031@gmail.com> To: netdev@vger.kernel.org Return-path: Received: from mail-pl0-f67.google.com ([209.85.160.67]:45964 "EHLO mail-pl0-f67.google.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1725853AbeHRFG6 (ORCPT ); Sat, 18 Aug 2018 01:06:58 -0400 Received: by mail-pl0-f67.google.com with SMTP id j8-v6so4456584pll.12 for ; Fri, 17 Aug 2018 19:01:09 -0700 (PDT) Received: from localhost.localdomain ([2402:f000:1:1501:200:5efe:a66f:53fa]) by smtp.gmail.com with ESMTPSA id d12-v6sm3661298pfn.118.2018.08.17.19.01.07 for (version=TLS1_2 cipher=ECDHE-RSA-AES128-SHA bits=128/128); Fri, 17 Aug 2018 19:01:07 -0700 (PDT) Sender: netdev-owner@vger.kernel.org List-ID: Function fm10k_init_module() defined in drivers/net/ethernet/intel/fm10k/fm10k_main.c calls alloc_workqueue() to allocate memory for struct workqueue_struct which is dereferenced immediately. As alloc_workqueue() may return NULL on failure, this code piece may cause NULL pointer dereference bug. --- drivers/net/ethernet/intel/fm10k/fm10k_main.c | 2 ++ 1 file changed, 2 insertions(+) diff --git a/drivers/net/ethernet/intel/fm10k/fm10k_main.c b/drivers/net/ethernet/intel/fm10k/fm10k_main.c index 3f53654..78a43d6 100644 --- a/drivers/net/ethernet/intel/fm10k/fm10k_main.c +++ b/drivers/net/ethernet/intel/fm10k/fm10k_main.c @@ -41,6 +41,8 @@ static int __init fm10k_init_module(void) /* create driver workqueue */ fm10k_workqueue = alloc_workqueue("%s", WQ_MEM_RECLAIM, 0, fm10k_driver_name); + if (!fm10k_workqueue) + return -ENOMEM; fm10k_dbg_init(); -- 2.6.4