Received: by 2002:a6b:fb09:0:0:0:0:0 with SMTP id h9csp863703iog; Fri, 24 Jun 2022 16:29:08 -0700 (PDT) X-Google-Smtp-Source: AGRyM1s80D6DyYiZXQrRdUI0I7EsE6+8Wf+qUxDIxaIdQ5rK/rV/dT38TUdheaX+uUfwXABC7vy9 X-Received: by 2002:aa7:c7cc:0:b0:435:81f5:2021 with SMTP id o12-20020aa7c7cc000000b0043581f52021mr1946256eds.62.1656113348512; Fri, 24 Jun 2022 16:29:08 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1656113348; cv=none; d=google.com; s=arc-20160816; b=KC++Drd8GjHMKgbs7PmXTHxg5zlfVbmRGQMbwKg28TKzA6ynVWCLPQnPcE6P8X3+5A IAtgjOd4JhXHB4fgt4KKOYWxsU0ewYzQcpXDoVnLnNl+LYpL1h87ii65ds14uIRcuzRh bB0P/4Lp1DBYUFnnbqP/MnF7nf70Jl9xy1gViDvfD1+niRI4j59YdO4dN8NabmpFPsIh /JtzPWy8l070WKHOWCYwF8DUDsFE/Oq6nYydSez6jXkwuCtZ+AsiftDmSTqmwwcXYGs1 shIoL+DcsNZxgfsLk1bTxeq3BNWLMWlxOdslrXZ27klBCjshLajeRNiiNe44c3KQhCkX rBpA== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=list-id:precedence:content-transfer-encoding:in-reply-to:from :references:cc:to:content-language:subject:user-agent:mime-version :date:message-id; bh=lzbd439a0AH9s5v7J1HqFQrBqbp6L4thaAYy/6dD0Yg=; b=PfbDw32L04103xgDTe0HNKJcQ/PDi/bYlqVFEWwKheuWB5tytjYxGrzzf9s/toKrBm 3VsmG81U+tZRjjzRbisOrMtuxOGHNZ03YSI7uJKGt9OShv2TeHUTJphmOIzhigVUbV+2 nO0A1dASto7Jgnw2vgKE5n07OcfYTQDEYT7r7gF5PkhYqCqD7z3Tl5NkvA1qeSqPAtgA g13ErTcmSyKfpF99H2RuEkOR+yzArcQHj7hXWWHAxN/6Nm5YsBj2ZHqRCj1EaNkBXMXG 9mfnTsv4Y7Gezo877ryyHzxq8Zu3LujCDgU+zaAj+b9t/ef1q1MpQk8U8vqVjf8YQN/J CivA== ARC-Authentication-Results: i=1; mx.google.com; spf=pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 2620:137:e000::1:20 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org; dmarc=fail (p=NONE sp=NONE dis=NONE) header.from=acm.org Return-Path: Received: from out1.vger.email (out1.vger.email. [2620:137:e000::1:20]) by mx.google.com with ESMTP id q5-20020a1709066b0500b00717917b7d99si4483486ejr.274.2022.06.24.16.28.43; Fri, 24 Jun 2022 16:29:08 -0700 (PDT) Received-SPF: pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 2620:137:e000::1:20 as permitted sender) client-ip=2620:137:e000::1:20; Authentication-Results: mx.google.com; spf=pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 2620:137:e000::1:20 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org; dmarc=fail (p=NONE sp=NONE dis=NONE) header.from=acm.org Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S230224AbiFXX0L (ORCPT + 99 others); Fri, 24 Jun 2022 19:26:11 -0400 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:53292 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S229441AbiFXX0J (ORCPT ); Fri, 24 Jun 2022 19:26:09 -0400 Received: from mail-pl1-f179.google.com (mail-pl1-f179.google.com [209.85.214.179]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id 1640D81530; Fri, 24 Jun 2022 16:26:09 -0700 (PDT) Received: by mail-pl1-f179.google.com with SMTP id r1so3309523plo.10; Fri, 24 Jun 2022 16:26:09 -0700 (PDT) X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20210112; h=x-gm-message-state:message-id:date:mime-version:user-agent:subject :content-language:to:cc:references:from:in-reply-to :content-transfer-encoding; bh=lzbd439a0AH9s5v7J1HqFQrBqbp6L4thaAYy/6dD0Yg=; b=mKFyMbpW3Djss0w9C54g9NRVfWPGgn7ZCdeGFTCXJETN8x6b9AGHxYuqI2JABcrs41 EPmA9vyNQRWGPOxvsX1sSaosyCFoLPPZfFE70jHVc0TvLjEK55jYgeH71j0wK9JTrKDB ubjEAu3BgyQjaLn1nw5M//Id8UrZcXcGMvGhwQMOetl57lJ723WbZs2297MdDzjIyPDa BIC+O0XCjTbYtR/a8CTwgnxQXXlSfBm1K/kND+i8R4pG1HX4ugRrryR3e9+38/BhZngq 0vlpR5PJGddBDGPCz++A6lO9T22xLk+QexONMd3Yr0KKZDaoumUdAdpcZWsXvoOJHiKb VNrQ== X-Gm-Message-State: AJIora/TcgSrcNFwjtKjL/RANESAA4dwPaznU/NnM1qLEfOngIb/HOMF rmkgkestpbk37YT+VzITp7I= X-Received: by 2002:a17:90b:3a89:b0:1ec:93d2:f47d with SMTP id om9-20020a17090b3a8900b001ec93d2f47dmr1378634pjb.139.1656113168309; Fri, 24 Jun 2022 16:26:08 -0700 (PDT) Received: from ?IPV6:2620:15c:211:201:4e1:3e2c:e2fe:b5e0? ([2620:15c:211:201:4e1:3e2c:e2fe:b5e0]) by smtp.gmail.com with ESMTPSA id q5-20020a170902bd8500b001640beeebf1sm2301901pls.268.2022.06.24.16.26.07 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128); Fri, 24 Jun 2022 16:26:07 -0700 (PDT) Message-ID: <5a4a42fe-c5c8-63fe-365f-e6c74a279cc2@acm.org> Date: Fri, 24 Jun 2022 16:26:06 -0700 MIME-Version: 1.0 User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:91.0) Gecko/20100101 Thunderbird/91.10.0 Subject: Re: [RFC PATCH] RDMA/srp: Fix use-after-free in srp_exit_cmd_priv Content-Language: en-US To: Jason Gunthorpe , Li Zhijian Cc: Leon Romanovsky , linux-rdma@vger.kernel.org, linux-kernel@vger.kernel.org References: <20220624040253.1420844-1-lizhijian@fujitsu.com> <20220624225908.GA303931@nvidia.com> From: Bart Van Assche In-Reply-To: <20220624225908.GA303931@nvidia.com> Content-Type: text/plain; charset=UTF-8; format=flowed Content-Transfer-Encoding: 7bit X-Spam-Status: No, score=-1.4 required=5.0 tests=BAYES_00, FREEMAIL_FORGED_FROMDOMAIN,FREEMAIL_FROM,HEADER_FROM_DIFFERENT_DOMAINS, NICE_REPLY_A,RCVD_IN_DNSWL_NONE,RCVD_IN_MSPIKE_H3,RCVD_IN_MSPIKE_WL, SPF_HELO_NONE,SPF_PASS,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 On 6/24/22 15:59, Jason Gunthorpe wrote: > I don't even understand how get_device() prevents this call chain?? > > It looks to me like the problem is srp_remove_one() is not waiting for > or canceling some outstanding work. Hi Jason, My conclusions from the call traces in Li's email are as follows: * scsi_host_dev_release() can get called after srp_remove_one(). * srp_exit_cmd_priv() uses the ib_device pointer. If srp_remove_one() is called before srp_exit_cmd_priv() then a use-after-free is triggered. Is calling get_device() and put_device() on the struct ib_device an acceptable way to fix this? If so, I recommend to insert a get_device() call after the scsi_add_host() call and put_device() calls after the two scsi_remove_host() calls instead of merging the patch at the start of this email thread. Thanks, Bart.