diff options
author | 2020-10-15 13:22:12 +0000 | |
---|---|---|
committer | 2020-10-15 13:22:12 +0000 | |
commit | a83ec2865aeaeb867719080e00ad0ac9752d01cc (patch) | |
tree | 82ad3a6719ecd9fda92c46891410f2a90c0541e3 | |
parent | Nuke commented out variable declaration. (diff) | |
download | wireguard-openbsd-a83ec2865aeaeb867719080e00ad0ac9752d01cc.tar.xz wireguard-openbsd-a83ec2865aeaeb867719080e00ad0ac9752d01cc.zip |
Replace simple one-line bcopy()/memcpy() of faked data into scsi_xfer with call
to scsi_copy_internal_data(). Thus getting xs->resid properly set and adding the
usual uio/size sanity checks.
-rw-r--r-- | sys/arch/sparc64/dev/vdsk.c | 4 | ||||
-rw-r--r-- | sys/dev/ata/atascsi.c | 7 | ||||
-rw-r--r-- | sys/dev/ic/nvme.c | 4 | ||||
-rw-r--r-- | sys/dev/pci/ips.c | 8 | ||||
-rw-r--r-- | sys/dev/pv/vioblk.c | 5 | ||||
-rw-r--r-- | sys/dev/pv/xbf.c | 4 | ||||
-rw-r--r-- | sys/dev/sdmmc/sdmmc_scsi.c | 4 |
7 files changed, 19 insertions, 17 deletions
diff --git a/sys/arch/sparc64/dev/vdsk.c b/sys/arch/sparc64/dev/vdsk.c index 981d267da78..330e4ec7fa8 100644 --- a/sys/arch/sparc64/dev/vdsk.c +++ b/sys/arch/sparc64/dev/vdsk.c @@ -1,4 +1,4 @@ -/* $OpenBSD: vdsk.c,v 1.68 2020/09/22 19:32:52 krw Exp $ */ +/* $OpenBSD: vdsk.c,v 1.69 2020/10/15 13:22:12 krw Exp $ */ /* * Copyright (c) 2009, 2011 Mark Kettenis * @@ -1178,7 +1178,7 @@ vdsk_scsi_inquiry(struct scsi_xfer *xs) snprintf(buf, sizeof(buf), "%u.%u ", sc->sc_major, sc->sc_minor); bcopy(buf, inq.revision, sizeof(inq.revision)); - bcopy(&inq, xs->data, MIN(sizeof(inq), xs->datalen)); + scsi_copy_internal_data(xs, &inq, sizoef(inq)); vdsk_scsi_done(xs, XS_NOERROR); } diff --git a/sys/dev/ata/atascsi.c b/sys/dev/ata/atascsi.c index bec5c9833fc..550cd7c26eb 100644 --- a/sys/dev/ata/atascsi.c +++ b/sys/dev/ata/atascsi.c @@ -1,4 +1,4 @@ -/* $OpenBSD: atascsi.c,v 1.149 2020/09/22 19:32:52 krw Exp $ */ +/* $OpenBSD: atascsi.c,v 1.150 2020/10/15 13:22:13 krw Exp $ */ /* * Copyright (c) 2007 David Gwynne <dlg@openbsd.org> @@ -718,7 +718,7 @@ atascsi_disk_inquiry(struct scsi_xfer *xs) ata_swapcopy(ap->ap_identify.firmware, inq.revision, sizeof(inq.revision)); - bcopy(&inq, xs->data, MIN(sizeof(inq), xs->datalen)); + scsi_copy_internal_data(xs, &inq, sizeof(inq)); atascsi_done(xs, XS_NOERROR); } @@ -1746,7 +1746,8 @@ atascsi_pmp_inq(struct scsi_xfer *xs) bcopy("Port Multiplier", inq.product, sizeof(inq.product)); bcopy(" ", inq.revision, sizeof(inq.revision)); - bcopy(&inq, xs->data, MIN(sizeof(inq), xs->datalen)); + scsi_copy_internal_data(xs, &inq, sizeof(inq)); + atascsi_done(xs, XS_NOERROR); } diff --git a/sys/dev/ic/nvme.c b/sys/dev/ic/nvme.c index f47d04f004e..2d0168899c3 100644 --- a/sys/dev/ic/nvme.c +++ b/sys/dev/ic/nvme.c @@ -1,4 +1,4 @@ -/* $OpenBSD: nvme.c,v 1.88 2020/09/22 19:32:52 krw Exp $ */ +/* $OpenBSD: nvme.c,v 1.89 2020/10/15 13:22:13 krw Exp $ */ /* * Copyright (c) 2014 David Gwynne <dlg@openbsd.org> @@ -787,7 +787,7 @@ nvme_scsi_inquiry(struct scsi_xfer *xs) memcpy(inq.product, sc->sc_identify.mn, sizeof(inq.product)); memcpy(inq.revision, sc->sc_identify.fr, sizeof(inq.revision)); - memcpy(xs->data, &inq, MIN(sizeof(inq), xs->datalen)); + scsi_copy_internal_data(xs, &inq, sizeof(inq)); xs->error = XS_NOERROR; scsi_done(xs); diff --git a/sys/dev/pci/ips.c b/sys/dev/pci/ips.c index 178cdfaa448..925a283b26f 100644 --- a/sys/dev/pci/ips.c +++ b/sys/dev/pci/ips.c @@ -1,4 +1,4 @@ -/* $OpenBSD: ips.c,v 1.132 2020/09/22 19:32:53 krw Exp $ */ +/* $OpenBSD: ips.c,v 1.133 2020/10/15 13:22:13 krw Exp $ */ /* * Copyright (c) 2006, 2007, 2009 Alexander Yurchenko <grange@openbsd.org> @@ -922,19 +922,19 @@ ips_scsi_cmd(struct scsi_xfer *xs) snprintf(inq.product, sizeof(inq.product), "LD%d RAID%d", target, drive->raid); strlcpy(inq.revision, "1.0", sizeof(inq.revision)); - memcpy(xs->data, &inq, MIN(xs->datalen, sizeof(inq))); + scsi_copy_internal_data(xs, &inq, sizeof(inq)); break; case READ_CAPACITY: bzero(&rcd, sizeof(rcd)); _lto4b(letoh32(drive->seccnt) - 1, rcd.addr); _lto4b(IPS_SECSZ, rcd.length); - memcpy(xs->data, &rcd, MIN(xs->datalen, sizeof(rcd))); + scsi_copy_internal_data(xs, &rcd, sizeof(rcd)); break; case REQUEST_SENSE: bzero(&sd, sizeof(sd)); sd.error_code = SSD_ERRCODE_CURRENT; sd.flags = SKEY_NO_SENSE; - memcpy(xs->data, &sd, MIN(xs->datalen, sizeof(sd))); + scsi_copy_internal_data(xs, &sd, sizeof(sd)); break; case SYNCHRONIZE_CACHE: cmd = ccb->c_cmdbva; diff --git a/sys/dev/pv/vioblk.c b/sys/dev/pv/vioblk.c index 1788717ba12..2c924df04ff 100644 --- a/sys/dev/pv/vioblk.c +++ b/sys/dev/pv/vioblk.c @@ -1,4 +1,4 @@ -/* $OpenBSD: vioblk.c,v 1.31 2020/09/22 19:32:53 krw Exp $ */ +/* $OpenBSD: vioblk.c,v 1.32 2020/10/15 13:22:13 krw Exp $ */ /* * Copyright (c) 2012 Stefan Fritsch. @@ -580,7 +580,8 @@ vioblk_scsi_inq(struct scsi_xfer *xs) bcopy("VirtIO ", inqd.vendor, sizeof(inqd.vendor)); bcopy("Block Device ", inqd.product, sizeof(inqd.product)); - bcopy(&inqd, xs->data, MIN(sizeof(inqd), xs->datalen)); + scsi_copy_internal_data(xs, &inqd, sizeof(inqd)); + vioblk_scsi_done(xs, XS_NOERROR); } diff --git a/sys/dev/pv/xbf.c b/sys/dev/pv/xbf.c index 893b7ab91d7..90b8ce7dccb 100644 --- a/sys/dev/pv/xbf.c +++ b/sys/dev/pv/xbf.c @@ -1,4 +1,4 @@ -/* $OpenBSD: xbf.c,v 1.50 2020/10/15 11:30:08 krw Exp $ */ +/* $OpenBSD: xbf.c,v 1.51 2020/10/15 13:22:13 krw Exp $ */ /* * Copyright (c) 2016, 2017 Mike Belopuhov @@ -842,7 +842,7 @@ xbf_scsi_inquiry(struct scsi_xfer *xs) bcopy(sc->sc_prod, inq.product, sizeof(inq.product)); bcopy("0000", inq.revision, sizeof(inq.revision)); - bcopy(&inq, xs->data, MIN(sizeof(inq), xs->datalen)); + scsi_copy_internal_data(xs, &inq, sizeof(inq)); xbf_scsi_done(xs, XS_NOERROR); } diff --git a/sys/dev/sdmmc/sdmmc_scsi.c b/sys/dev/sdmmc/sdmmc_scsi.c index 0b7ffa260a9..d2ac99671e6 100644 --- a/sys/dev/sdmmc/sdmmc_scsi.c +++ b/sys/dev/sdmmc/sdmmc_scsi.c @@ -1,4 +1,4 @@ -/* $OpenBSD: sdmmc_scsi.c,v 1.58 2020/09/22 19:32:53 krw Exp $ */ +/* $OpenBSD: sdmmc_scsi.c,v 1.59 2020/10/15 13:22:13 krw Exp $ */ /* * Copyright (c) 2006 Uwe Stuehler <uwe@openbsd.org> @@ -443,7 +443,7 @@ sdmmc_inquiry(struct scsi_xfer *xs) memcpy(inq.product, product, sizeof(inq.product)); memcpy(inq.revision, revision, sizeof(inq.revision)); - memcpy(xs->data, &inq, MIN(xs->datalen, sizeof(inq))); + scsi_copy_internal_data(xs, &inq, sizeof(inq)); done: scsi_done(xs); |