From mboxrd@z Thu Jan 1 00:00:00 1970 From: roel kluin Subject: [PATCH] [SCSI] libsas: fix test for negative unsigned and typos Date: Sat, 29 Nov 2008 11:31:08 -0500 Message-ID: <49316E4C.7070808@gmail.com> Mime-Version: 1.0 Content-Type: text/plain; charset=ISO-8859-1 Content-Transfer-Encoding: 7bit Return-path: Received: from ug-out-1314.google.com ([66.249.92.173]:25878 "EHLO ug-out-1314.google.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1751423AbYK2QbP (ORCPT ); Sat, 29 Nov 2008 11:31:15 -0500 Received: by ug-out-1314.google.com with SMTP id 39so2226680ugf.37 for ; Sat, 29 Nov 2008 08:31:13 -0800 (PST) Sender: linux-scsi-owner@vger.kernel.org List-Id: linux-scsi@vger.kernel.org To: James.Bottomley@HansenPartnership.com Cc: linux-scsi@vger.kernel.org, linux-kernel@vger.kernel.org unsigned req->data_len cannot be negative, and fix typo Signed-off-by: Roel Kluin --- I am not sure whether this is what was intended, please review. diff --git a/drivers/scsi/libsas/sas_host_smp.c b/drivers/scsi/libsas/sas_host_smp.c index 16f9312..6eb0779 100644 --- a/drivers/scsi/libsas/sas_host_smp.c +++ b/drivers/scsi/libsas/sas_host_smp.c @@ -199,12 +199,12 @@ int sas_smp_host_handler(struct Scsi_Host *shost, struct request *req, break; case SMP_DISCOVER: - req->data_len =- 16; - if (req->data_len < 0) { + if (req->data_len < 15) { req->data_len = 0; error = -EINVAL; goto out; } + req->data_len -= 16; resp_data_len -= 56; sas_host_smp_discover(sas_ha, resp_data, req_data[9]); break; @@ -215,12 +215,12 @@ int sas_smp_host_handler(struct Scsi_Host *shost, struct request *req, break; case SMP_REPORT_PHY_SATA: - req->data_len =- 16; - if (req->data_len < 0) { + if (req->data_len < 15) { req->data_len = 0; error = -EINVAL; goto out; } + req->data_len -= 16; resp_data_len -= 60; sas_report_phy_sata(sas_ha, resp_data, req_data[9]); break; @@ -238,12 +238,12 @@ int sas_smp_host_handler(struct Scsi_Host *shost, struct request *req, break; case SMP_PHY_CONTROL: - req->data_len =- 44; - if (req->data_len < 0) { + if (req->data_len < 43) { req->data_len = 0; error = -EINVAL; goto out; } + req->data_len -= 44; resp_data_len -= 8; sas_phy_control(sas_ha, req_data[9], req_data[10], req_data[32] >> 4, req_data[33] >> 4,