1 diff -ux Makefile mtx-1.2.9/mtxl.c mtx-1.2.9.works/mtxl.c
2 --- mtx-1.2.9/mtxl.c Mon Jul 31 12:33:53 2000
3 +++ mtx-1.2.9.works/mtxl.c Sat Nov 25 16:47:45 2000
5 ElementStatus_T *ReadElementStatus(DEVICE_TYPE MediumChangerFD, RequestSense_T *RequestSense, Inquiry_T *inquiry_info, SCSI_Flags_T *flags) {
6 ElementStatusDataHeader_T *ElementStatusDataHeader;
7 ElementStatusPage_T *ElementStatusPage;
8 + ElementStatusPage_T ESBuf;
9 ElementStatus_T *ElementStatus;
10 TransportElementDescriptor_T *TransportElementDescriptor;
11 + TransportElementDescriptor_T TEBuf;
13 unsigned char *DataBuffer; /* size of data... */
14 unsigned char *DataPointer; /* point into the databuffer; */
19 - ElementStatusPage = (ElementStatusPage_T *) DataPointer;
20 + memcpy(&ESBuf, DataPointer, sizeof(ElementStatusPage_T));
21 + ElementStatusPage = &ESBuf;
22 DataPointer += sizeof(ElementStatusPage_T);
23 TransportElementDescriptorLength =
24 BigEndian16(ElementStatusPage->ElementDescriptorLength);
26 BigEndian24(ElementStatusPage->ByteCountOfDescriptorDataAvailable);
27 while (BytesAvailable > 0)
29 - TransportElementDescriptor =
30 - (TransportElementDescriptor_T *) DataPointer;
31 + memcpy(&TEBuf, DataPointer, TransportElementDescriptorLength);
32 + TransportElementDescriptor = &TEBuf;
33 DataPointer += TransportElementDescriptorLength;
34 BytesAvailable -= TransportElementDescriptorLength;