From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S262124AbVHCGxJ (ORCPT ); Wed, 3 Aug 2005 02:53:09 -0400 Received: (majordomo@vger.kernel.org) by vger.kernel.org id S262119AbVHCGvE (ORCPT ); Wed, 3 Aug 2005 02:51:04 -0400 Received: from smtp.osdl.org ([65.172.181.4]:60634 "EHLO smtp.osdl.org") by vger.kernel.org with ESMTP id S262118AbVHCGtN (ORCPT ); Wed, 3 Aug 2005 02:49:13 -0400 Date: Tue, 2 Aug 2005 23:48:38 -0700 From: Chris Wright To: linux-kernel@vger.kernel.org, stable@kernel.org Cc: Justin Forbes , Zwane Mwaikambo , "Theodore Ts'o" , Randy Dunlap , Chuck Wolber , torvalds@osdl.org, akpm@osdl.org, "alan@lxorguk.ukuu.org.uk Andrew Vasquez" , Michael Reed Subject: [02/13] qla2xxx: Correct handling of fc_remote_port_add() failure case. Message-ID: <20050803064838.GQ7762@shell0.pdx.osdl.net> References: <20050803064439.GO7762@shell0.pdx.osdl.net> Mime-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline In-Reply-To: <20050803064439.GO7762@shell0.pdx.osdl.net> User-Agent: Mutt/1.5.6i Sender: linux-kernel-owner@vger.kernel.org X-Mailing-List: linux-kernel@vger.kernel.org -stable review patch. If anyone has any objections, please let us know. ------------------ Correct handling of fc_remote_port_add() failure case. Immediately return if fc_remote_port_add() fails to allocate resources for the rport. Original code would result in NULL pointer dereference upon failure. Reported-by: Michael Reed Signed-off-by: Andrew Vasquez Signed-off-by: Chris Wright Signed-off-by: Greg Kroah-Hartman --- drivers/scsi/qla2xxx/qla_init.c | 4 +++- 1 files changed, 3 insertions(+), 1 deletion(-) --- linux-2.6.12.3.orig/drivers/scsi/qla2xxx/qla_init.c 2005-07-28 11:17:01.000000000 -0700 +++ linux-2.6.12.3/drivers/scsi/qla2xxx/qla_init.c 2005-07-28 11:17:08.000000000 -0700 @@ -1914,9 +1914,11 @@ rport_ids.roles |= FC_RPORT_ROLE_FCP_TARGET; fcport->rport = rport = fc_remote_port_add(ha->host, 0, &rport_ids); - if (!rport) + if (!rport) { qla_printk(KERN_WARNING, ha, "Unable to allocate fc remote port!\n"); + return; + } if (rport->scsi_target_id != -1 && rport->scsi_target_id < MAX_TARGETS) fcport->os_target_id = rport->scsi_target_id;