Author: cgutman
Date: Sat Oct  3 20:21:14 2009
New Revision: 43270

URL: http://svn.reactos.org/svn/reactos?rev=43270&view=rev
Log:
 - Fix the crash in ws2_32_winetest during the ioctlsocket test
 - Pass the blocking mode down to AFD
 - Dedicated to encoded

Modified:
    trunk/reactos/dll/win32/msafd/misc/dllmain.c

Modified: trunk/reactos/dll/win32/msafd/misc/dllmain.c
URL: 
http://svn.reactos.org/svn/reactos/trunk/reactos/dll/win32/msafd/misc/dllmain.c?rev=43270&r1=43269&r2=43270&view=diff
==============================================================================
--- trunk/reactos/dll/win32/msafd/misc/dllmain.c [iso-8859-1] (original)
+++ trunk/reactos/dll/win32/msafd/misc/dllmain.c [iso-8859-1] Sat Oct  3 
20:21:14 2009
@@ -1735,12 +1735,18 @@
     switch( dwIoControlCode )
     {
         case FIONBIO:
-            if( cbInBuffer < sizeof(INT) )
+            if( cbInBuffer < sizeof(INT) || IS_INTRESOURCE(lpvInBuffer) )
+            {
+                *lpErrno = WSAEFAULT;
                 return SOCKET_ERROR;
-            Socket->SharedData.NonBlocking = *((PINT)lpvInBuffer) ? 1 : 0;
-            AFD_DbgPrint(MID_TRACE,("[%x] Set nonblocking %d\n", Handle, 
Socket->SharedData.NonBlocking));
-            return 0;
+            }
+            return SetSocketInformation(Socket, AFD_INFO_BLOCKING_MODE, 
(PULONG)lpvInBuffer, NULL);
         case FIONREAD:
+            if( cbOutBuffer < sizeof(INT) || IS_INTRESOURCE(lpvOutBuffer) )
+            {
+                *lpErrno = WSAEFAULT;
+                return SOCKET_ERROR;
+            }
             return GetSocketInformation(Socket, AFD_INFO_RECEIVE_CONTENT_SIZE, 
(PULONG)lpvOutBuffer, NULL);
         default:
             *lpErrno = WSAEINVAL;


Reply via email to