From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.4.0 (2014-02-07) on aws-us-west-2-korg-lkml-1.web.codeaurora.org X-Spam-Level: X-Spam-Status: No, score=-9.2 required=3.0 tests=DKIMWL_WL_HIGH,DKIM_SIGNED, DKIM_VALID,DKIM_VALID_AU,INCLUDES_PATCH,MAILING_LIST_MULTI,SIGNED_OFF_BY, SPF_PASS,USER_AGENT_GIT autolearn=ham autolearn_force=no version=3.4.0 Received: from mail.kernel.org (mail.kernel.org [198.145.29.99]) by smtp.lore.kernel.org (Postfix) with ESMTP id E7D5FC43381 for ; Sat, 23 Feb 2019 21:12:30 +0000 (UTC) Received: from vger.kernel.org (vger.kernel.org [209.132.180.67]) by mail.kernel.org (Postfix) with ESMTP id A97C620651 for ; Sat, 23 Feb 2019 21:12:30 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org; s=default; t=1550956350; bh=dQv38jO9dBtNuX+xx0FrCH10qudSlw8qhy48A6sU2NA=; h=From:To:Cc:Subject:Date:In-Reply-To:References:List-ID:From; b=F9VYTAEh5IA7E6HZjibDwkphYUjK+7808V1Ov1Inh0ClkTeh/kbgYGLx4OQbD8Rp9 5ouoXdEIK3DTWRKaHS4eop0/LCsK2jV5ie/QLULWhvBwX1UVGxBuEngYOCaSoLdmOZ eX2j5gRF5O0kqoG43wJv6WTKM1f1iiMqUk7KGigY= Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1730108AbfBWVMA (ORCPT ); Sat, 23 Feb 2019 16:12:00 -0500 Received: from mail.kernel.org ([198.145.29.99]:48588 "EHLO mail.kernel.org" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1730086AbfBWVLz (ORCPT ); Sat, 23 Feb 2019 16:11:55 -0500 Received: from sasha-vm.mshome.net (c-73-47-72-35.hsd1.nh.comcast.net [73.47.72.35]) (using TLSv1.2 with cipher ECDHE-RSA-AES128-GCM-SHA256 (128/128 bits)) (No client certificate requested) by mail.kernel.org (Postfix) with ESMTPSA id 4A54D2085A; Sat, 23 Feb 2019 21:11:54 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org; s=default; t=1550956315; bh=dQv38jO9dBtNuX+xx0FrCH10qudSlw8qhy48A6sU2NA=; h=From:To:Cc:Subject:Date:In-Reply-To:References:From; b=a5XhehFTchMMA3NJNFk7Yqh6Hw7nPf5SIP6rnJG9MYgTsY3LnGCo3eEGoYFm/yXtT c4kOX+JC9gQLG7Iklt45wSJnxJBsIWmrE4+zYLy6fEBUC92EyoKiHXUxbNpD0r7+rF vhnI3FbDx9G9YlFx9PgEM4wx2rTX1u0iMDjIuiGM= From: Sasha Levin To: linux-kernel@vger.kernel.org, stable@vger.kernel.org Cc: Ming Lu , "Martin K . Petersen" , Sasha Levin , linux-scsi@vger.kernel.org Subject: [PATCH AUTOSEL 3.18 12/18] scsi: libfc: free skb when receiving invalid flogi resp Date: Sat, 23 Feb 2019 16:11:29 -0500 Message-Id: <20190223211135.203082-12-sashal@kernel.org> X-Mailer: git-send-email 2.19.1 In-Reply-To: <20190223211135.203082-1-sashal@kernel.org> References: <20190223211135.203082-1-sashal@kernel.org> MIME-Version: 1.0 X-Patchwork-Hint: Ignore Content-Transfer-Encoding: 8bit Sender: linux-kernel-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org From: Ming Lu [ Upstream commit 5d8fc4a9f0eec20b6c07895022a6bea3fb6dfb38 ] The issue to be fixed in this commit is when libfc found it received a invalid FLOGI response from FC switch, it would return without freeing the fc frame, which is just the skb data. This would cause memory leak if FC switch keeps sending invalid FLOGI responses. This fix is just to make it execute `fc_frame_free(fp)` before returning from function `fc_lport_flogi_resp`. Signed-off-by: Ming Lu Reviewed-by: Hannes Reinecke Signed-off-by: Martin K. Petersen Signed-off-by: Sasha Levin --- drivers/scsi/libfc/fc_lport.c | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/drivers/scsi/libfc/fc_lport.c b/drivers/scsi/libfc/fc_lport.c index e01a29863c384..867fc036d6ef5 100644 --- a/drivers/scsi/libfc/fc_lport.c +++ b/drivers/scsi/libfc/fc_lport.c @@ -1739,14 +1739,14 @@ void fc_lport_flogi_resp(struct fc_seq *sp, struct fc_frame *fp, fc_frame_payload_op(fp) != ELS_LS_ACC) { FC_LPORT_DBG(lport, "FLOGI not accepted or bad response\n"); fc_lport_error(lport, fp); - goto err; + goto out; } flp = fc_frame_payload_get(fp, sizeof(*flp)); if (!flp) { FC_LPORT_DBG(lport, "FLOGI bad response\n"); fc_lport_error(lport, fp); - goto err; + goto out; } mfs = ntohs(flp->fl_csp.sp_bb_data) & @@ -1756,7 +1756,7 @@ void fc_lport_flogi_resp(struct fc_seq *sp, struct fc_frame *fp, FC_LPORT_DBG(lport, "FLOGI bad mfs:%hu response, " "lport->mfs:%hu\n", mfs, lport->mfs); fc_lport_error(lport, fp); - goto err; + goto out; } if (mfs <= lport->mfs) { -- 2.19.1