- Fix a massive memory leak of our entire TDI entity ID database after each call to getInterfaceInfoSet
- Fix another massive leak of our entire TDI interface table after each call to getInterfaceInfoByIndex and getInterfaceInfoByName
- Fix some uninitialized variable warnings
- Explorer no longer leaks horrendous amounts of memory (about 1 MB per minute even without network activity) when the network status icon is in the system tray
svn path=/trunk/; revision=53190
- Rewrite receive code to make it much simpler, handle some corner cases that weren't treated correctly, and fix the data corruption bug
- Downloaded successfully (no data corruption): OpenOffice 2.4, OpenOffice 3.3, BitTorrent 7.2.1, Firefox 5, Firefox 3.6, Firefox 3, Firefox 2, Abyss Web Server, Opera 9.64, and Opera 11.01
svn path=/trunk/; revision=53189
- Fix a buffer overflow when the packet queue has more packets than the receive request can take
- Remove an extra variable
svn path=/trunk/; revision=53188
- Reapply the switchtype patch from widl-ros.diff. This patch should be sent upstream to wine.
See issue #6406 for more details.
svn path=/trunk/; revision=53187
- Implement SO_LINGER and SO_DONTLINGER for getsockopt and setsockopt
- Fix and add buffer size checks
- Yes, we've gone this long without SO_LINGER support
svn path=/trunk/; revision=53174
- use -Oif flag to produce modern (!) NT4 stubs, with Microsoft extensions to IDL language.
[ADVAPI32]
- Initialize *pcbBytesNeeded, as it's marked as [in], it needs to be in the 0-8k range before being passed to RPC.
Now 2nd stage got his mouse and keyboard again.
svn path=/trunk/; revision=53171
Fix MSVC warning about signed/unsigned mismatch. In this case it was not a bug, because the compiler implicitly casts to unsigned, when signed and unsigned are compared, so (-1 < 0x23U) is false.
svn path=/trunk/; revision=53163
- fix confusion on buffer size between string length and number of bytes.
Might fix some infamous heap corruption bug during install. Please test.
svn path=/trunk/; revision=53160
- addendum to r53153 : [unique] and [ptr] can't be applied to [out] only parameters, so mark them as [in] too.
Now MSVC build gets as far as 3rd stage.
svn path=/trunk/; revision=53154
memory barriers
- implement a fixed version of __invlpg for MSVC, since the intrinsic is broken and can generate wrong instructions, when optimization is enabled
- add MSVC versions of _mm_mfence, _mm_lfence, _mm_sfence and __faststorefence
- add _mm_mfence() for gcc
- give _mm_lfence, _mm_sfence, __invlpg and __wbinvd proper
svn path=/trunk/; revision=53151
- Implement a simple buffer allocation algorithm which backs off the buffer size until all buffer allocations succeed
See issue #6284 for more details.
svn path=/trunk/; revision=53149
- Allocate receive and transmit buffers (each 49152 bytes) as cached shared memory to increase the likelihood of a successful allocation in a low memory scenario
See issue #6284 for more details.
svn path=/trunk/; revision=53148
- Implement NdisMDeregisterIoPortRange
[PCNET]
- Don't call NdisMFreeMapRegisters if no map registers were allocated
- Call MiFreeSharedMemory before freeing map registers to avoid a crash because freeing map registers deallocates the adapter object
svn path=/trunk/; revision=53147