From patchwork Tue Mar 19 21:42:40 2019 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Aditya Pakki X-Patchwork-Id: 1058681 X-Patchwork-Delegate: davem@davemloft.net Return-Path: X-Original-To: patchwork-incoming-netdev@ozlabs.org Delivered-To: patchwork-incoming-netdev@ozlabs.org Authentication-Results: ozlabs.org; spf=none (mailfrom) smtp.mailfrom=vger.kernel.org (client-ip=209.132.180.67; helo=vger.kernel.org; envelope-from=netdev-owner@vger.kernel.org; receiver=) Authentication-Results: ozlabs.org; dmarc=pass (p=none dis=none) header.from=umn.edu Authentication-Results: ozlabs.org; dkim=pass (2048-bit key; unprotected) header.d=umn.edu header.i=@umn.edu header.b="TykP1apy"; dkim-atps=neutral Received: from vger.kernel.org (vger.kernel.org [209.132.180.67]) by ozlabs.org (Postfix) with ESMTP id 44P63g6lcLz9sBp for ; Wed, 20 Mar 2019 08:42:55 +1100 (AEDT) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1727099AbfCSVmu (ORCPT ); Tue, 19 Mar 2019 17:42:50 -0400 Received: from mta-p6.oit.umn.edu ([134.84.196.206]:36332 "EHLO mta-p6.oit.umn.edu" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1726832AbfCSVmu (ORCPT ); Tue, 19 Mar 2019 17:42:50 -0400 Received: from localhost (unknown [127.0.0.1]) by mta-p6.oit.umn.edu (Postfix) with ESMTP id 54E7424B for ; Tue, 19 Mar 2019 21:42:48 +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 t_r_6KQbN0Z2 for ; Tue, 19 Mar 2019 16:42:48 -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 1E658D93 for ; Tue, 19 Mar 2019 16:42:48 -0500 (CDT) Received: by mail-it1-f198.google.com with SMTP id e124so314792ita.4 for ; Tue, 19 Mar 2019 14:42:48 -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=V5vdRUOMTzyVp4ECrS0AB5gyBJ7sCUPHuwXXx+dSqDo=; b=TykP1apyox9zAtmDdTXPECynaDG5eASTOCQTnvnSFH6sPpbdsE4VhBervN1poV2UQm o115hKiwpoeExx/hYRK6h3Bg8E+B37B3F1Nhz7bXUYRIOreO+Q6DP2C7BqBWSDdPKevj 248qKO0L4zxnpsj92yBC3l0ILr6pdJqaudvNq39pi8nTTQH3qeag1PFE2NoclaRUfbcK GoNnNRnk+31aITJHWo++7igvE/E0PHZCBM6ckmNxmWniXBiLn7XRedFQ/E9OOVZZwMrT rH3Zg1YSFuuL+52Ad3tnYnUEPdlaSo7UkSPImbQ2FViGDuP0dK7+96Pzv+50Dy1/Xn8v Hntg== 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=V5vdRUOMTzyVp4ECrS0AB5gyBJ7sCUPHuwXXx+dSqDo=; b=ALH6vRPQZMo7wx6BS6b/5VptxD2K/EpJG6+q30jFrQDz1EeKDZZN44oA4SUpk+SyC6 /WInQXihUSiN8Ohy5ByFpcDCmDArThZ1EaZe2z0IK745+1Yf4+9Do8pMhkm4bw3tu8VF 2wedcrdmKF6TMsjESAw/SVqb3EWgligYDE/4AmL1CxudqdZHqNRpzmiTmErgkQXF1Kl+ vEnHR7C+uinm3qcoG3PZqKHbR5y3Szpz7AVw2X/vmk2N5LYw032ZlZBSgih7yfHc3322 9fpqspfLoDlyJUHAFbAT8A6fu0vveFRhFssEVGq+O25Tois9hotF/3iPPp5+vX3Hn7pG HP3Q== X-Gm-Message-State: APjAAAXqY+dq4cNL1IiU7uIshL3h2caKrOjP1SIFklFfEMnfzTte9b6k HP5Rvlz9aiH8orzWKYtrGdGZNu6bfjXVLL7KXERiPJnQSVWoNMXL6qyHjoYwRsd1HWrGk0AHq6A PXAO4/+fRkn2vpsfPtZHe X-Received: by 2002:a24:7908:: with SMTP id z8mr3012330itc.16.1553031767786; Tue, 19 Mar 2019 14:42:47 -0700 (PDT) X-Google-Smtp-Source: APXvYqytLDfBw66AbJUy5GqZFHF/b2HfAyebvOM5JpUohVLeZNvvyrNPigDNI8oGi9hRdBDA170XCA== X-Received: by 2002:a24:7908:: with SMTP id z8mr3012318itc.16.1553031767566; Tue, 19 Mar 2019 14:42:47 -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 i14sm132892itc.34.2019.03.19.14.42.46 (version=TLS1_2 cipher=ECDHE-RSA-AES128-GCM-SHA256 bits=128/128); Tue, 19 Mar 2019 14:42:46 -0700 (PDT) From: Aditya Pakki To: pakki001@umn.edu Cc: kjlu@umn.edu, Boris Pismenny , Saeed Mahameed , Leon Romanovsky , "David S. Miller" , Ilya Lesokhin , Wei Yongjun , netdev@vger.kernel.org, linux-rdma@vger.kernel.org, linux-kernel@vger.kernel.org Subject: [PATCH v4] net: mlx5: Add a missing check on idr_find, free buf Date: Tue, 19 Mar 2019 16:42:40 -0500 Message-Id: <20190319214244.20212-1-pakki001@umn.edu> X-Mailer: git-send-email 2.17.1 Sender: netdev-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: netdev@vger.kernel.org idr_find() can return a NULL value to 'flow' which is used without a check. The patch adds a check to avoid potential NULL pointer dereference. In case of mlx5_fpga_sbu_conn_sendmsg() failure, free buf allocated using kzalloc. Fixes: ab412e1dd7db ("net/mlx5: Accel, add TLS rx offload routines") --- v3: Reorder buf allocations and flow check. v2: failure to return in case of flow failure. v1: Failed to free buf in case of flow failure. Signed-off-by: Aditya Pakki --- drivers/net/ethernet/mellanox/mlx5/core/fpga/tls.c | 14 +++++++++++--- 1 file changed, 11 insertions(+), 3 deletions(-) diff --git a/drivers/net/ethernet/mellanox/mlx5/core/fpga/tls.c b/drivers/net/ethernet/mellanox/mlx5/core/fpga/tls.c index 5cf5f2a9d51f..8de64e88c670 100644 --- a/drivers/net/ethernet/mellanox/mlx5/core/fpga/tls.c +++ b/drivers/net/ethernet/mellanox/mlx5/core/fpga/tls.c @@ -217,15 +217,21 @@ int mlx5_fpga_tls_resync_rx(struct mlx5_core_dev *mdev, u32 handle, u32 seq, void *cmd; int ret; + rcu_read_lock(); + flow = idr_find(&mdev->fpga->tls->rx_idr, ntohl(handle)); + rcu_read_unlock(); + + if (!flow) { + WARN_ONCE(1, "Received NULL pointer for handle\n"); + return -EINVAL; + } + buf = kzalloc(size, GFP_ATOMIC); if (!buf) return -ENOMEM; cmd = (buf + 1); - rcu_read_lock(); - flow = idr_find(&mdev->fpga->tls->rx_idr, ntohl(handle)); - rcu_read_unlock(); mlx5_fpga_tls_flow_to_cmd(flow, cmd); MLX5_SET(tls_cmd, cmd, swid, ntohl(handle)); @@ -238,6 +244,8 @@ int mlx5_fpga_tls_resync_rx(struct mlx5_core_dev *mdev, u32 handle, u32 seq, buf->complete = mlx_tls_kfree_complete; ret = mlx5_fpga_sbu_conn_sendmsg(mdev->fpga->tls->conn, buf); + if (ret < 0) + kfree(buf); return ret; }