From: Rafael Garcia-Suarez Date: Wed, 20 Jun 2007 14:36:19 +0000 (+0000) Subject: Change #31426 should also be applied to the windows CE version X-Git-Url: http://git.shadowcat.co.uk/gitweb/gitweb.cgi?a=commitdiff_plain;h=d1b0f6034d6ba11b3431428d8dac3200d6b2b02b;p=p5sagit%2Fp5-mst-13.2.git Change #31426 should also be applied to the windows CE version p4raw-id: //depot/perl@31427 --- diff --git a/win32/wincesck.c b/win32/wincesck.c index 8f2a90b..76d56fc 100644 --- a/win32/wincesck.c +++ b/win32/wincesck.c @@ -343,15 +343,19 @@ int win32_ioctl(int i, unsigned int u, char *data) { dTHX; - u_long argp = (u_long)data; + u_long u_long_arg; int retval; - + if (!wsock_started) { Perl_croak_nocontext("ioctl implemented only on sockets"); /* NOTREACHED */ } - retval = ioctlsocket(TO_SOCKET(i), (long)u, &argp); + /* mauke says using memcpy avoids alignment issues */ + memcpy(&u_long_arg, data, sizeof u_long_arg); + retval = ioctlsocket(TO_SOCKET(i), (long)u, &u_long_arg); + memcpy(data, &u_long_arg, sizeof u_long_arg); + if (retval == SOCKET_ERROR) { if (WSAGetLastError() == WSAENOTSOCK) { Perl_croak_nocontext("ioctl implemented only on sockets");