[PATCH] ws2_32: Use only the lower 16 bit as level when calling set+getsockopt from 16 bit
Detlef Riekenberg
wine.dev at web.de
Mon Aug 24 15:32:53 CDT 2009
---
dlls/ws2_32/socket16.c | 5 +++--
1 files changed, 3 insertions(+), 2 deletions(-)
diff --git a/dlls/ws2_32/socket16.c b/dlls/ws2_32/socket16.c
index b4b3fe8..c2bb444 100644
--- a/dlls/ws2_32/socket16.c
+++ b/dlls/ws2_32/socket16.c
@@ -294,8 +294,9 @@ INT16 WINAPI getsockopt16(SOCKET16 s, INT16 level, INT16 optname, char *optval,
INT optlen32;
INT *p = &optlen32;
INT retVal;
+
if( optlen ) optlen32 = *optlen; else p = NULL;
- retVal = WS_getsockopt( s, level, optname, optval, p );
+ retVal = WS_getsockopt( s, level & 0xffff, optname, optval, p );
if( optlen ) *optlen = optlen32;
return retVal;
}
@@ -397,7 +398,7 @@ INT16 WINAPI setsockopt16(SOCKET16 s, INT16 level, INT16 optname,
char *optval, INT16 optlen)
{
if( !optval ) return SOCKET_ERROR;
- return WS_setsockopt( s, level, optname, optval, optlen );
+ return WS_setsockopt( s, level & 0xffff, optname, optval, optlen );
}
/***********************************************************************
--
1.5.4.3
--=-1NU4OiwHM6GI6UIkdjp/--
More information about the wine-patches
mailing list