summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorGarrett D'Amore <garrett@damore.org>2022-07-26 19:30:46 -0400
committerGarrett D'Amore <garrett@damore.org>2022-07-26 23:24:07 -0400
commit7a73cc88540259bf08ed9c7aab5983fd7aecb1a3 (patch)
treecfe4df3c04de373b8d0c7bae7458eb6489dbdb6a
parentf3ba9b4e08f448ddcb00b37383e05dae8544e31e (diff)
downloadillumos-joyent-7a73cc88540259bf08ed9c7aab5983fd7aecb1a3.tar.gz
14858 use after free in pvscsi
Reviewed by: Jerry Jelinek <gjelinek@gmail.com> Reviewed by: Joyce McIntosh <jmcintosh@racktopsystems.com> Reviewed by: Joshua M. Clulow <josh@sysmgr.org> Reviewed by: Andrew Stormont <andyjstormont@gmail.com> Approved by: Gordon Ross <gordon.w.ross@gmail.com>
-rw-r--r--usr/src/uts/common/io/scsi/adapters/pvscsi/pvscsi.c5
1 files changed, 3 insertions, 2 deletions
diff --git a/usr/src/uts/common/io/scsi/adapters/pvscsi/pvscsi.c b/usr/src/uts/common/io/scsi/adapters/pvscsi/pvscsi.c
index 1b560be437..fc77702b12 100644
--- a/usr/src/uts/common/io/scsi/adapters/pvscsi/pvscsi.c
+++ b/usr/src/uts/common/io/scsi/adapters/pvscsi/pvscsi.c
@@ -1141,6 +1141,7 @@ pvscsi_start(struct scsi_address *ap, struct scsi_pkt *pkt)
pvscsi_device_t *pd;
pvscsi_softc_t *pvs;
int rc;
+ boolean_t poll;
/* make sure the packet is sane */
if ((pkt->pkt_numcookies > PVSCSI_MAX_SG_SIZE) ||
@@ -1154,7 +1155,7 @@ pvscsi_start(struct scsi_address *ap, struct scsi_pkt *pkt)
ASSERT(cmd->pkt == pkt);
- cmd->poll = ((pkt->pkt_flags & FLAG_NOINTR) != 0);
+ poll = cmd->poll = ((pkt->pkt_flags & FLAG_NOINTR) != 0);
if (pkt->pkt_flags & (FLAG_HTAG|FLAG_HEAD)) {
cmd->tag = MSG_HEAD_QTAG;
@@ -1198,7 +1199,7 @@ pvscsi_start(struct scsi_address *ap, struct scsi_pkt *pkt)
rc = pvscsi_transport_command(pvs, cmd);
- if (cmd->poll && rc == TRAN_ACCEPT) {
+ if (poll && rc == TRAN_ACCEPT) {
pvscsi_poll_cmd(pvs, cmd);
pvscsi_set_status(pvs, cmd);
}