PATCH: fix dlls/ntdll/cdrom.c build failure

Gerald Pfeifer gerald at pfeifer.com
Fri Jul 8 17:49:58 CDT 2005


This fixes the build failure on FreeBSD I reported about a week ago.

Gerald

ChangeLog:
Add a configure check for struct request_sense.  Use this in 
CDROM_ScsiPassThroughDir() and CDROM_ScsiPassThrough() to unbreak
the build on FreeBSD.

Index: configure.ac
===================================================================
RCS file: /home/wine/wine/configure.ac,v
retrieving revision 1.371
diff -u -3 -p -r1.371 configure.ac
--- configure.ac	1 Jul 2005 19:15:26 -0000	1.371
+++ configure.ac	8 Jul 2005 22:49:33 -0000
@@ -1246,6 +1245,7 @@ AC_C_CONST
 AC_C_INLINE
 AC_CHECK_TYPES([mode_t, off_t, pid_t, size_t, ssize_t, long long, fsblkcnt_t, fsfilcnt_t])
 AC_CHECK_TYPES([sigset_t],,,[#include <signal.h>])
+AC_CHECK_TYPES([request_sense],,,[#include <linux/cdrom.h>])
 
 AC_CACHE_CHECK([whether linux/input.h is for real],
 	wine_cv_linux_input_h,
Index: dlls/ntdll/cdrom.c
===================================================================
RCS file: /home/wine/wine/dlls/ntdll/cdrom.c,v
retrieving revision 1.61
diff -u -3 -p -r1.61 cdrom.c
--- dlls/ntdll/cdrom.c	1 Jul 2005 19:15:26 -0000	1.61
+++ dlls/ntdll/cdrom.c	8 Jul 2005 22:49:34 -0000
@@ -1427,10 +1427,11 @@ static NTSTATUS CDROM_ScsiPassThroughDir
 
 #ifdef SENSEBUFLEN
     if (pPacket->SenseInfoLength > SENSEBUFLEN)
-#else
+        return STATUS_INVALID_PARAMETER;
+#elif defined HAVE_REQUEST_SENSE
     if (pPacket->SenseInfoLength > sizeof(struct request_sense))
-#endif
         return STATUS_INVALID_PARAMETER;
+#endif
 
     if (pPacket->DataTransferLength > 0 && !pPacket->DataBuffer)
         return STATUS_INVALID_PARAMETER;
@@ -1547,10 +1548,11 @@ static NTSTATUS CDROM_ScsiPassThrough(in
 
 #ifdef SENSEBUFLEN
     if (pPacket->SenseInfoLength > SENSEBUFLEN)
-#else
+        return STATUS_INVALID_PARAMETER;
+#elif defined HAVE_REQUEST_SENSE
     if (pPacket->SenseInfoLength > sizeof(struct request_sense))
-#endif
         return STATUS_INVALID_PARAMETER;
+#endif
 
     if (pPacket->DataTransferLength > 0 && pPacket->DataBufferOffset < sizeof(SCSI_PASS_THROUGH))
         return STATUS_INVALID_PARAMETER;



More information about the wine-patches mailing list