mirror of https://lore.kernel.org/lkml/
 help / color / mirror / Atom feed
From: Kees Cook <keescook@chromium.org>
To: Jens Axboe <axboe@kernel.dk>
Cc: "Kees Cook" <keescook@chromium.org>,
	"Christoph Hellwig" <hch@infradead.org>,
	"Martin K. Petersen" <martin.petersen@oracle.com>,
	"James E.J. Bottomley" <jejb@linux.vnet.ibm.com>,
	"Tejun Heo" <tj@kernel.org>, "Borislav Petkov" <bp@alien8.de>,
	"David S. Miller" <davem@davemloft.net>,
	"Manoj N. Kumar" <manoj@linux.vnet.ibm.com>,
	"Matthew R. Ochs" <mrochs@linux.vnet.ibm.com>,
	"Uma Krishnan" <ukrishn@linux.vnet.ibm.com>,
	"Nicholas A. Bellinger" <nab@linux-iscsi.org>,
	"Thomas Gleixner" <tglx@linutronix.de>,
	"Philippe Ombredanne" <pombredanne@nexb.com>,
	"Stephen Boyd" <sboyd@codeaurora.org>,
	"Cyrille Pitchen" <cyrille.pitchen@free-electrons.com>,
	"Juergen Gross" <jgross@suse.com>,
	"Viresh Kumar" <viresh.kumar@linaro.org>,
	"Uwe Kleine-König" <u.kleine-koenig@pengutronix.de>,
	"Sagar Dharia" <sdharia@codeaurora.org>,
	"Randy Dunlap" <rdunlap@infradead.org>,
	"Vinod Koul" <vinod.koul@intel.com>,
	"David Kershner" <david.kershner@unisys.com>,
	linux-block@vger.kernel.org, linux-ide@vger.kernel.org,
	linux-scsi@vger.kernel.org, target-devel@vger.kernel.org,
	linux-kernel@vger.kernel.org
Subject: [PATCH v2 8/9] libata-scsi: Move sense buffers onto stack
Date: Tue, 31 Jul 2018 12:51:53 -0700	[thread overview]
Message-ID: <20180731195155.46664-9-keescook@chromium.org> (raw)
In-Reply-To: <20180731195155.46664-1-keescook@chromium.org>

To support future compile-time sizeof() checks that will be able to
validate the length of sense buffers, this removes the only dynamically
allocated sense buffers in the tree by putting the 96 byte sense buffers
on the stack.

Signed-off-by: Kees Cook <keescook@chromium.org>
---
 drivers/ata/libata-scsi.c | 18 ++++++------------
 1 file changed, 6 insertions(+), 12 deletions(-)

diff --git a/drivers/ata/libata-scsi.c b/drivers/ata/libata-scsi.c
index 89a9d4a2efc8..3a43d3a1ce2d 100644
--- a/drivers/ata/libata-scsi.c
+++ b/drivers/ata/libata-scsi.c
@@ -597,8 +597,9 @@ static int ata_get_identity(struct ata_port *ap, struct scsi_device *sdev,
 int ata_cmd_ioctl(struct scsi_device *scsidev, void __user *arg)
 {
 	int rc = 0;
+	u8 sensebuf[SCSI_SENSE_BUFFERSIZE];
 	u8 scsi_cmd[MAX_COMMAND_SIZE];
-	u8 args[4], *argbuf = NULL, *sensebuf = NULL;
+	u8 args[4], *argbuf = NULL;
 	int argsize = 0;
 	enum dma_data_direction data_dir;
 	struct scsi_sense_hdr sshdr;
@@ -610,10 +611,7 @@ int ata_cmd_ioctl(struct scsi_device *scsidev, void __user *arg)
 	if (copy_from_user(args, arg, sizeof(args)))
 		return -EFAULT;
 
-	sensebuf = kzalloc(SCSI_SENSE_BUFFERSIZE, GFP_NOIO);
-	if (!sensebuf)
-		return -ENOMEM;
-
+	memset(sensebuf, 0, sizeof(sensebuf));
 	memset(scsi_cmd, 0, sizeof(scsi_cmd));
 
 	if (args[3]) {
@@ -685,7 +683,6 @@ int ata_cmd_ioctl(struct scsi_device *scsidev, void __user *arg)
 	 && copy_to_user(arg + sizeof(args), argbuf, argsize))
 		rc = -EFAULT;
 error:
-	kfree(sensebuf);
 	kfree(argbuf);
 	return rc;
 }
@@ -704,8 +701,9 @@ int ata_cmd_ioctl(struct scsi_device *scsidev, void __user *arg)
 int ata_task_ioctl(struct scsi_device *scsidev, void __user *arg)
 {
 	int rc = 0;
+	u8 sensebuf[SCSI_SENSE_BUFFERSIZE];
 	u8 scsi_cmd[MAX_COMMAND_SIZE];
-	u8 args[7], *sensebuf = NULL;
+	u8 args[7];
 	struct scsi_sense_hdr sshdr;
 	int cmd_result;
 
@@ -715,10 +713,7 @@ int ata_task_ioctl(struct scsi_device *scsidev, void __user *arg)
 	if (copy_from_user(args, arg, sizeof(args)))
 		return -EFAULT;
 
-	sensebuf = kzalloc(SCSI_SENSE_BUFFERSIZE, GFP_NOIO);
-	if (!sensebuf)
-		return -ENOMEM;
-
+	memset(sensebuf, 0, sizeof(sensebuf));
 	memset(scsi_cmd, 0, sizeof(scsi_cmd));
 	scsi_cmd[0]  = ATA_16;
 	scsi_cmd[1]  = (3 << 1); /* Non-data */
@@ -769,7 +764,6 @@ int ata_task_ioctl(struct scsi_device *scsidev, void __user *arg)
 	}
 
  error:
-	kfree(sensebuf);
 	return rc;
 }
 
-- 
2.17.1


  parent reply	other threads:[~2018-07-31 19:52 UTC|newest]

Thread overview: 29+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2018-07-31 19:51 [PATCH v2 0/9] block: Consolidate scsi sense buffer usage Kees Cook
2018-07-31 19:51 ` [PATCH v2 1/9] ide-cd: Drop unused sense buffers Kees Cook
2018-07-31 21:29   ` David Miller
2018-07-31 19:51 ` [PATCH v2 2/9] scsi: cxlflash: " Kees Cook
2018-07-31 19:51 ` [PATCH v2 3/9] scsi: build scsi_common.o for all scsi passthrough request users Kees Cook
2018-07-31 20:01   ` Bart Van Assche
2018-07-31 20:12     ` hch
2018-07-31 20:18       ` Bart Van Assche
2018-08-01 19:50         ` Kees Cook
2018-07-31 19:51 ` [PATCH v2 4/9] target: don't depend on SCSI Kees Cook
2018-08-06 23:38   ` Randy Dunlap
2018-08-06 23:59     ` Kees Cook
2018-08-07  0:52       ` Randy Dunlap
2018-08-07  5:44       ` Christoph Hellwig
2018-07-31 19:51 ` [PATCH v2 5/9] block: Switch struct packet_command to use struct scsi_sense_hdr Kees Cook
2018-08-01  8:22   ` Christoph Hellwig
2018-07-31 19:51 ` [PATCH v2 6/9] ide-cd: Remove redundant sense buffer Kees Cook
2018-07-31 21:30   ` David Miller
2018-08-01  8:23   ` Christoph Hellwig
2018-07-31 19:51 ` [PATCH v2 7/9] cdrom: Use struct scsi_sense_hdr internally Kees Cook
2018-08-01  8:24   ` Christoph Hellwig
2018-07-31 19:51 ` Kees Cook [this message]
2018-08-01  8:24   ` [PATCH v2 8/9] libata-scsi: Move sense buffers onto stack Christoph Hellwig
2018-08-01 15:45   ` Tejun Heo
2018-07-31 19:51 ` [PATCH v2 9/9] scsi: Check sense buffer size at build time Kees Cook
2018-08-01  8:25   ` Christoph Hellwig
2018-08-02 20:21 ` [PATCH v2 0/9] block: Consolidate scsi sense buffer usage Martin K. Petersen
2018-08-02 21:24 ` Jens Axboe
2018-08-02 21:56   ` Kees Cook

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=20180731195155.46664-9-keescook@chromium.org \
    --to=keescook@chromium.org \
    --cc=axboe@kernel.dk \
    --cc=bp@alien8.de \
    --cc=cyrille.pitchen@free-electrons.com \
    --cc=davem@davemloft.net \
    --cc=david.kershner@unisys.com \
    --cc=hch@infradead.org \
    --cc=jejb@linux.vnet.ibm.com \
    --cc=jgross@suse.com \
    --cc=linux-block@vger.kernel.org \
    --cc=linux-ide@vger.kernel.org \
    --cc=linux-kernel@vger.kernel.org \
    --cc=linux-scsi@vger.kernel.org \
    --cc=manoj@linux.vnet.ibm.com \
    --cc=martin.petersen@oracle.com \
    --cc=mrochs@linux.vnet.ibm.com \
    --cc=nab@linux-iscsi.org \
    --cc=pombredanne@nexb.com \
    --cc=rdunlap@infradead.org \
    --cc=sboyd@codeaurora.org \
    --cc=sdharia@codeaurora.org \
    --cc=target-devel@vger.kernel.org \
    --cc=tglx@linutronix.de \
    --cc=tj@kernel.org \
    --cc=u.kleine-koenig@pengutronix.de \
    --cc=ukrishn@linux.vnet.ibm.com \
    --cc=vinod.koul@intel.com \
    --cc=viresh.kumar@linaro.org \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox

all inboxes | Powered by JetHome®