From 451ece0074272093800d92c48addf8545a704d67 Mon Sep 17 00:00:00 2001 From: RichardG867 Date: Mon, 28 Oct 2024 19:57:26 -0300 Subject: [PATCH] scsi_cdrom: Fix reporting of read errors on ATAPI drives --- src/scsi/scsi_cdrom.c | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/src/scsi/scsi_cdrom.c b/src/scsi/scsi_cdrom.c index 358901847..103ce3161 100644 --- a/src/scsi/scsi_cdrom.c +++ b/src/scsi/scsi_cdrom.c @@ -1416,7 +1416,7 @@ scsi_cdrom_read_blocks(scsi_cdrom_t *dev, int32_t *len, int first_batch, int ven scsi_cdrom_log("Read %i bytes of blocks...\n", *len); if (ret == -1) - return 0; + return ret; else if (!ret || (!first_batch && (dev->old_len != *len))) { if (!first_batch && (dev->old_len != *len)) scsi_cdrom_illegal_mode(dev); @@ -2219,7 +2219,7 @@ begin: if (ret <= 0) { scsi_cdrom_set_phase(dev, SCSI_PHASE_STATUS); - dev->packet_status = PHASE_COMPLETE; + dev->packet_status = (ret < 0) ? PHASE_ERROR : PHASE_COMPLETE; dev->callback = 20.0 * CDROM_TIME; scsi_cdrom_set_callback(dev); scsi_cdrom_buf_free(dev);