A workaround for missing struct request_sense on FreeBSD.
This commit is contained in:
parent
d494c3ab21
commit
cb7de15ebe
@ -1416,7 +1416,11 @@ static NTSTATUS CDROM_ScsiPassThroughDirect(int fd, PSCSI_PASS_THROUGH_DIRECT pP
|
|||||||
if (pPacket->CdbLength > 16)
|
if (pPacket->CdbLength > 16)
|
||||||
return STATUS_INVALID_PARAMETER;
|
return STATUS_INVALID_PARAMETER;
|
||||||
|
|
||||||
|
#ifdef SENSEBUFLEN
|
||||||
|
if (pPacket->SenseInfoLength > SENSEBUFLEN)
|
||||||
|
#else
|
||||||
if (pPacket->SenseInfoLength > sizeof(struct request_sense))
|
if (pPacket->SenseInfoLength > sizeof(struct request_sense))
|
||||||
|
#endif
|
||||||
return STATUS_INVALID_PARAMETER;
|
return STATUS_INVALID_PARAMETER;
|
||||||
|
|
||||||
if (pPacket->DataTransferLength > 0 && !pPacket->DataBuffer)
|
if (pPacket->DataTransferLength > 0 && !pPacket->DataBuffer)
|
||||||
@ -1531,7 +1535,11 @@ static NTSTATUS CDROM_ScsiPassThrough(int fd, PSCSI_PASS_THROUGH pPacket)
|
|||||||
if (pPacket->CdbLength > 16)
|
if (pPacket->CdbLength > 16)
|
||||||
return STATUS_INVALID_PARAMETER;
|
return STATUS_INVALID_PARAMETER;
|
||||||
|
|
||||||
|
#ifdef SENSEBUFLEN
|
||||||
|
if (pPacket->SenseInfoLength > SENSEBUFLEN)
|
||||||
|
#else
|
||||||
if (pPacket->SenseInfoLength > sizeof(struct request_sense))
|
if (pPacket->SenseInfoLength > sizeof(struct request_sense))
|
||||||
|
#endif
|
||||||
return STATUS_INVALID_PARAMETER;
|
return STATUS_INVALID_PARAMETER;
|
||||||
|
|
||||||
if (pPacket->DataTransferLength > 0 && pPacket->DataBufferOffset < sizeof(SCSI_PASS_THROUGH))
|
if (pPacket->DataTransferLength > 0 && pPacket->DataBufferOffset < sizeof(SCSI_PASS_THROUGH))
|
||||||
@ -1576,15 +1584,6 @@ static NTSTATUS CDROM_ScsiPassThrough(int fd, PSCSI_PASS_THROUGH pPacket)
|
|||||||
|
|
||||||
#elif defined HAVE_SCSIREQ_T_CMD
|
#elif defined HAVE_SCSIREQ_T_CMD
|
||||||
|
|
||||||
if (pPacket->Length < sizeof(SCSI_PASS_THROUGH))
|
|
||||||
return STATUS_BUFFER_TOO_SMALL;
|
|
||||||
|
|
||||||
if (pPacket->CdbLength > 12)
|
|
||||||
return STATUS_INVALID_PARAMETER;
|
|
||||||
|
|
||||||
if (pPacket->SenseInfoLength > SENSEBUFLEN)
|
|
||||||
return STATUS_INVALID_PARAMETER;
|
|
||||||
|
|
||||||
memset(&cmd, 0, sizeof(cmd));
|
memset(&cmd, 0, sizeof(cmd));
|
||||||
memcpy(&(cmd.cmd), &(pPacket->Cdb), pPacket->CdbLength);
|
memcpy(&(cmd.cmd), &(pPacket->Cdb), pPacket->CdbLength);
|
||||||
|
|
||||||
|
Loading…
x
Reference in New Issue
Block a user