pkgsrc-wip/bareos/patches/patch-core_src_lib_scsi__ll...

47 lines
1.5 KiB
C++

$NetBSD$
Fix coding - was probably never tested with scsi-crypto flag
--- core/src/lib/scsi_lli.cc.orig 2018-12-20 08:51:51.000000000 +0000
+++ core/src/lib/scsi_lli.cc
@@ -384,6 +384,7 @@ bool CheckScsiAtEod(int fd)
#elif defined(HAVE_NETBSD_OS) || defined(HAVE_OPENBSD_OS)
#if defined(HAVE_NETBSD_OS)
+#include <sys/scsiio.h>
#include <dev/scsipi/scsipi_all.h>
#else
#include <scsi/uscsi_all.h>
@@ -403,7 +404,7 @@ static inline bool do_scsi_cmd_page(int
{
int rc;
scsireq_t req;
- SCSI_PAGE_SENSE *sense;
+ SCSI_PAGE_SENSE sense;
bool opened_device = false;
bool retval = false;
@@ -446,19 +447,17 @@ static inline bool do_scsi_cmd_page(int
retval = true;
break;
case SCCMD_SENSE:
- sense = req.sense;
+ memcpy(&sense, &req.sense, sizeof sense < sizeof req.sense ? sizeof sense : sizeof req.sense);
Emsg3(M_ERROR, 0, _("Sense Key: %0.2X ASC: %0.2X ASCQ: %0.2X\n"),
LOBYTE(sense.senseKey), sense.addSenseCode, sense.addSenseCodeQual);
break;
case SCCMD_TIMEOUT:
Emsg1(M_ERROR, 0, _("SCIOCCOMMAND ioctl on %s returned SCSI command timed out\n"),
- devicename);
+ device_name);
break;
case SCCMD_BUSY:
Emsg1(M_ERROR, 0, _("SCIOCCOMMAND ioctl on %s returned device is busy\n"),
- devicename);
- break;
- case SCCMD_SENSE:
+ device_name);
break;
default:
Emsg2(M_ERROR, 0, _("SCIOCCOMMAND ioctl on %s returned unknown status %d\n"),