summaryrefslogtreecommitdiffstats
path: root/sys/scsi/scsi_base.c
diff options
context:
space:
mode:
authorkrw <krw@openbsd.org>2020-03-12 16:15:03 +0000
committerkrw <krw@openbsd.org>2020-03-12 16:15:03 +0000
commitb9aee7ab4c61ba0d0669cb4af8a511ae627722fe (patch)
treeb92f503afee6ad68b3675553c5fcf2a9369d2b8d /sys/scsi/scsi_base.c
parentAdd a regression test for vnd(4). (diff)
downloadwireguard-openbsd-b9aee7ab4c61ba0d0669cb4af8a511ae627722fe.tar.xz
wireguard-openbsd-b9aee7ab4c61ba0d0669cb4af8a511ae627722fe.zip
Check for short mode sense error inside scsi_mode_sense_big()
rather than after the only invocation. No functional change.
Diffstat (limited to 'sys/scsi/scsi_base.c')
-rw-r--r--sys/scsi/scsi_base.c7
1 files changed, 4 insertions, 3 deletions
diff --git a/sys/scsi/scsi_base.c b/sys/scsi/scsi_base.c
index 504c9f8ff44..2028360e363 100644
--- a/sys/scsi/scsi_base.c
+++ b/sys/scsi/scsi_base.c
@@ -1,4 +1,4 @@
-/* $OpenBSD: scsi_base.c,v 1.263 2020/03/12 13:49:25 krw Exp $ */
+/* $OpenBSD: scsi_base.c,v 1.264 2020/03/12 16:15:03 krw Exp $ */
/* $NetBSD: scsi_base.c,v 1.43 1997/04/02 02:29:36 mycroft Exp $ */
/*
@@ -1156,6 +1156,9 @@ scsi_mode_sense_big(struct scsi_link *link, int pg_code,
error = scsi_xs_sync(xs);
scsi_xs_put(xs);
+ if (_2btol(data->data_length) < 6)
+ error = EIO;
+
#ifdef SCSIDEBUG
sc_print_addr(link);
if (error == 0) {
@@ -1307,8 +1310,6 @@ scsi_do_mode_sense(struct scsi_link *link, int pg_code,
error = scsi_mode_sense_big(link, pg_code, &buf->hdr_big, flags);
if (error != 0)
return error;
- if (_2btol(buf->hdr_big.data_length) < 6)
- return EIO;
*big = 1;
*page_data = scsi_mode_sense_big_page(&buf->hdr_big, pg_code,