A free Windows-compatible Operating System - mirrored from GitHub
Go to file
Cameron Gutman 6c0d0cbab0 [AFD]
- 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
2012-08-27 04:16:28 +00:00
reactos [AFD] 2012-08-27 04:16:28 +00:00
rosapps [ROSAPPS] 2012-06-30 11:33:33 +00:00
rostests [KMTESTS:EX] 2012-08-26 12:06:45 +00:00
wallpaper - Add CMakeLists for wallpaper 2012-02-05 13:43:04 +00:00