- Implement proper support for partial sends on TCP sockets
- This prevents a deadlock when a very very large packet is queued to be sent
svn path=/trunk/; revision=57186
* Prefer STREQUAL over MATCHES since we're comparing with strings here. Brought to you by Hermès Bélusca.
See issue #7306 for more details.
svn path=/trunk/; revision=57181
- Add some tests for lstrncpyW
- This function is fine, I wrote that when chasing some bug thinking this function was at fault.
svn path=/trunk/; revision=57179
- Fix one of the worst bugs in AFD of all time. Our AFD code operated under the assumption that none of the input parameters would change once we called LockRequest. This assumption is completely false. The only guarantee that made was that the pages never disappeared from us, not they they couldn't be modified. There are frequent cases where the user-mode buffer was modified from underneath us (WSPRecv allocates the struct on stack which makes it invalid during overlapped operations that complete later). When this happened, we would bugcheck when we tried to unlock the buffers since we accessed this in a member of the struct the caller passed us.
- I've fixed this by adding a parameter to LockRequest which specifies whether the buffer should be copied back when it is unlocked.
- This bug has been around for ages and I was never able to figure out why we just freed garbage sometimes. Now that the ws2_32_winetest exposed it reliably, I was finally able to fix it.
svn path=/trunk/; revision=57175
- mark DllMain as a weak symbol for GCC.
- supply a stubbed DllMain for MSVC.
- DllMain is optional, and some DLLs don't implement it. That doesn't mean that they have no entry point, it means "I have nothing more to initialize than the CRT".
svn path=/trunk/; revision=57171
- Change AFD to a very aggressive buffering policy
- It now attempts to keep its 64K receive buffer completely full at all times
- This increases network performance significantly
svn path=/trunk/; revision=57170
- Implement LsaSetSeceret/LsarSetSecret (secret values are not encrypted yet) and LsaSetSystemAccessAccount.
- Improve some TRACE messages.
svn path=/trunk/; revision=57167
- Make hard-coded calling convention exceptions in ExInterlocked compatible with GCC 4.7, and add the corresponding TODO about how ugly this is
svn path=/trunk/; revision=57166
PSEH2 uses a special mechanism to deal with nested try blocks inside the same function. Instead of pushing a second exception registration record on the exception list, it uses an internal pointer to handle the different try-levels.
But when a function using SEH is inlined, the resulting code will push 2 registration frames on the stack. Now it happens with GCC 4.7.1 that these frames get shuffled on the stack, putting one for the inner try on a higher stack address. This is something that RtlUnwind regards as a bug and throws a STATUS_INVALID_UNWIND_TARGET exception. This was the reason for the crashing PSEH2_TEST, when compiled with GCC 4.7.1.
To fix this, I added a mechanism that will prevent functions using SEH from being inlined.
svn path=/trunk/; revision=57159
- Check result of walking the import descriptor and properly fail in case it wasn't successful.
See issue #7289 for more details.
svn path=/trunk/; revision=57156
[NTOSKRNL]: Remove an ASSERT(FALSE) that was only there for testing.
[NTOSKRNL]: Enable richard's ARM3 section code unconditionally for all non-file backed sections. Works4me. Let's see what Testbot says.
svn path=/trunk/; revision=57155
- Add some optimizations (GCC) on compilation of libMesa
- Move opengl32 to the opengl directory
- Disable ICD refcounting for now, it does more harm than good.
svn path=/trunk/; revision=57153
* Call cl directly instead of its full path using <CMAKE_C_COMPILER>. Figuring out why it didn't work is left as an exercise for the reader.
svn path=/trunk/; revision=57152
Hermès Bélusca:
* Fix a bug in the way we compiled the boot sectors on the x64 build.
* Consistently set the mc compiler, like gcc builds.
* Use proper variables when referring to the compilers.
See issue #7297 for more details.
svn path=/trunk/; revision=57151
- Fix a bug causing FIONREAD to return an incorrect value after a datagram receive completes when only returning a subset of the data (returns WSAEMSGSIZE)
svn path=/trunk/; revision=57147