Received: by 2002:ac0:bc90:0:0:0:0:0 with SMTP id a16csp738227img; Wed, 20 Mar 2019 09:49:32 -0700 (PDT) X-Google-Smtp-Source: APXvYqw860Ukf6vnq764dTVRoHXHtjNuzIQ00x4Wx44ovaHnVDeA5VTJ4dlUeDTp41KEC+Os1SSR X-Received: by 2002:a63:f914:: with SMTP id h20mr8305413pgi.322.1553100572470; Wed, 20 Mar 2019 09:49:32 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1553100572; cv=none; d=google.com; s=arc-20160816; b=rXuJfdRMlrBjt6T65LF6Xt+sIyBAj1XwRiHikgKALK3dzSB9UpLcyG9s8mUxLTRDij SxmYCrIhzxJ9YOeUqOAdkA2yhLQnHu95kO3PxPOog4YIgNUz1A77iZMF40CAZA/+WdoS OPHjNFwSB0o8GSEwHQLz3c4sQ7RUr1tBLJIcInfWuFH0pKQ7BevXg8iRkhFcMbGDsCS3 2MRvEsVsIBr4X0HtlIhOk5YRbnZNPiLGjQiRpCk/cl+yJtyIsAQieBilYvz2ciLmTek8 Bayyw9Mj9XLXewlSGrsNz2p0B7NYRh9jIFEPz1W7dFNN+Bs81a0MXUX9lrXcRXAJwUYd hihg== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=list-id:precedence:sender:message-id:date:subject:cc:to:from :dkim-signature; bh=OCgBGZ9QjrlJl4iqs5f+O79+0bjbKr934DYkhHFKtlI=; b=1AXlM4i0j55EP5UwaH7p8XkV9TK9DkcEoFGCbIt5gQ9AtSu67IZQFYBMOK2qPSdITv yCWOVkk5/ecbwyu3S/CxjbL7RU4Vc6qTGPB0b7IQJfdeZRw/vrGb94TRJHIEuk9+lIcI LSMIgDoA6KNZR3ME+Enr8YTDMx3NLAR7q+XyVKvoyCp7fZLtfa2+q8A/fphqUwec2o5V Bv6WS8iEvpxOmaJqhKkTyQzA85PprwQQlcKy+SanOv8dyYqY+jwUWlP7teYWk3Ss6vkk CfpF+N/j3n91ff22DhEoYymUDION6yRpylrNU/SdWmhBcL5D5sZXwgRtRUu1engN03/o xx9w== ARC-Authentication-Results: i=1; mx.google.com; dkim=pass header.i=@umn.edu header.s=google header.b=OOU1IZOV; spf=pass (google.com: best guess record for domain of linux-kernel-owner@vger.kernel.org designates 209.132.180.67 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org; dmarc=pass (p=NONE sp=NONE dis=NONE) header.from=umn.edu Return-Path: Received: from vger.kernel.org (vger.kernel.org. [209.132.180.67]) by mx.google.com with ESMTP id y7si1874072pfe.248.2019.03.20.09.49.16; Wed, 20 Mar 2019 09:49:32 -0700 (PDT) Received-SPF: pass (google.com: best guess record for domain of linux-kernel-owner@vger.kernel.org designates 209.132.180.67 as permitted sender) client-ip=209.132.180.67; Authentication-Results: mx.google.com; dkim=pass header.i=@umn.edu header.s=google header.b=OOU1IZOV; spf=pass (google.com: best guess record for domain of linux-kernel-owner@vger.kernel.org designates 209.132.180.67 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org; dmarc=pass (p=NONE sp=NONE dis=NONE) header.from=umn.edu Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1726839AbfCTQrZ (ORCPT + 99 others); Wed, 20 Mar 2019 12:47:25 -0400 Received: from mta-p6.oit.umn.edu ([134.84.196.206]:48562 "EHLO mta-p6.oit.umn.edu" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1726492AbfCTQrY (ORCPT ); Wed, 20 Mar 2019 12:47:24 -0400 Received: from localhost (unknown [127.0.0.1]) by mta-p6.oit.umn.edu (Postfix) with ESMTP id 114ED170 for ; Wed, 20 Mar 2019 16:47:23 +0000 (UTC) X-Virus-Scanned: amavisd-new at umn.edu Received: from mta-p6.oit.umn.edu ([127.0.0.1]) by localhost (mta-p6.oit.umn.edu [127.0.0.1]) (amavisd-new, port 10024) with ESMTP id nY35TWa28hr0 for ; Wed, 20 Mar 2019 11:47:22 -0500 (CDT) Received: from mail-it1-f198.google.com (mail-it1-f198.google.com [209.85.166.198]) (using TLSv1.2 with cipher AES128-GCM-SHA256 (128/128 bits)) (No client certificate requested) by mta-p6.oit.umn.edu (Postfix) with ESMTPS id BCB64BD8 for ; Wed, 20 Mar 2019 11:47:22 -0500 (CDT) Received: by mail-it1-f198.google.com with SMTP id i4so2711882itb.1 for ; Wed, 20 Mar 2019 09:47:22 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=umn.edu; s=google; h=from:to:cc:subject:date:message-id; bh=OCgBGZ9QjrlJl4iqs5f+O79+0bjbKr934DYkhHFKtlI=; b=OOU1IZOV9kn1tAIKwAszR4rbr3YZUrdscvNFOXpdRgrs6/eYjIAoPUrjtJvcqQVcJf A36wmRrtoTk5TPenXYIzTMciqQQ2sYJrbSISrXgcrl1H5X2FWGWCpLx2JQ8kXdDFrvSu 62M9xppkgs2x47romIPEU52RfQD8w9tXUBgxUhfAZlYaLauoET56ggrQWG3V7PZr24hH fojdSk4F79VsAhYF5Q+z4E1onMTCdGou7QMySYKO+pUlZGVZ/2M/cm5E7LcxFk/OZI8S yyp/VSf67HnGSgBxGiZXHRBiajTrdNcyVgur6cO8PI/A4/7M1YcDraPC2Rihi1G8mWQG miEA== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:from:to:cc:subject:date:message-id; bh=OCgBGZ9QjrlJl4iqs5f+O79+0bjbKr934DYkhHFKtlI=; b=h9W/qN40fOcoN+1CRFibMu4hnDnyXQ1xealj/jz/M+HsIhRSKU9cAaBEPtewY/x61P +39M//F2JxoBZUkUdfm3G11BboA1oFl5+URqrRZpmg4kCCBSuDhppE5sY1WW7p/2cDzE uebh6YsCIqLDXYyk/0QOqNg4DL9Uc7NBna7lH2miqsq5k5n2FxvdoRiSfUot/cXos3Zs jv8P2SId2HWGHxE9xf2EMhHcpCKTYBz4iZtdHlUWCnBcGm9+7KCLVNdTYJW6WwtnitvU cxyTkEfeVqoF/0BABFsvSDskzbmg6qc4hGKS2AURVsY3fTeOub8WSIFg2AsQXevvh9GT kfwQ== X-Gm-Message-State: APjAAAX+cajR4WjCPKbYc1Fi4Rlu1G6oKLW47JbzERuJzTLWKoCrAXyb l/khs5qMlHuCNengIm2Y8owzVWjvb2onG2Fd6b/6s3/vnUtrAClQ5w2I2baFsw7AJIVhCGBHjAO DT+PMNU/DeV4znU5RxPnT5C1Fc4iZ X-Received: by 2002:a02:224b:: with SMTP id o72mr6035563jao.16.1553100442381; Wed, 20 Mar 2019 09:47:22 -0700 (PDT) X-Received: by 2002:a02:224b:: with SMTP id o72mr6035548jao.16.1553100442203; Wed, 20 Mar 2019 09:47:22 -0700 (PDT) Received: from cs-u-syssec1.dtc.umn.edu (cs-u-syssec1.cs.umn.edu. [128.101.106.66]) by smtp.gmail.com with ESMTPSA id v4sm982480ios.10.2019.03.20.09.47.21 (version=TLS1_2 cipher=ECDHE-RSA-AES128-GCM-SHA256 bits=128/128); Wed, 20 Mar 2019 09:47:21 -0700 (PDT) From: Aditya Pakki To: pakki001@umn.edu Cc: kjlu@umn.edu, Andreas Noever , Michael Jamet , Mika Westerberg , Yehezkel Bernat , Alexei Starovoitov , Daniel Borkmann , "David S. Miller" , Jakub Kicinski , Jesper Dangaard Brouer , John Fastabend , linux-kernel@vger.kernel.org, netdev@vger.kernel.org, xdp-newbies@vger.kernel.org, bpf@vger.kernel.org Subject: [PATCH v2] thunderbolt: xdomain: Fix to check return value of kmemdup Date: Wed, 20 Mar 2019 11:47:20 -0500 Message-Id: <20190320164720.31264-1-pakki001@umn.edu> X-Mailer: git-send-email 2.17.1 Sender: linux-kernel-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org kmemdup can fail and return a NULL pointer. The patch modifies the signature of tb_xdp_schedule_request and passes the failure error upstream. Signed-off-by: Aditya Pakki --- v1: Missed clean up of xw in case of kmemdup failure, per David --- drivers/thunderbolt/xdomain.c | 15 +++++++++------ 1 file changed, 9 insertions(+), 6 deletions(-) diff --git a/drivers/thunderbolt/xdomain.c b/drivers/thunderbolt/xdomain.c index e27dd8beb94b..316360109bea 100644 --- a/drivers/thunderbolt/xdomain.c +++ b/drivers/thunderbolt/xdomain.c @@ -526,7 +526,7 @@ static void tb_xdp_handle_request(struct work_struct *work) kfree(xw); } -static void +static bool tb_xdp_schedule_request(struct tb *tb, const struct tb_xdp_header *hdr, size_t size) { @@ -534,13 +534,18 @@ tb_xdp_schedule_request(struct tb *tb, const struct tb_xdp_header *hdr, xw = kmalloc(sizeof(*xw), GFP_KERNEL); if (!xw) - return; + return false; INIT_WORK(&xw->work, tb_xdp_handle_request); xw->pkg = kmemdup(hdr, size, GFP_KERNEL); + if (!xw->pkg) { + kfree(xw); + return false; + } xw->tb = tb; queue_work(tb->wq, &xw->work); + return true; } /** @@ -1416,10 +1421,8 @@ bool tb_xdomain_handle_request(struct tb *tb, enum tb_cfg_pkg_type type, * handlers in turn. */ if (uuid_equal(&hdr->uuid, &tb_xdp_uuid)) { - if (type == TB_CFG_PKG_XDOMAIN_REQ) { - tb_xdp_schedule_request(tb, hdr, size); - return true; - } + if (type == TB_CFG_PKG_XDOMAIN_REQ) + return tb_xdp_schedule_request(tb, hdr, size); return false; } -- 2.17.1