mirror of
https://github.com/reactos/reactos.git
synced 2025-02-22 08:25:03 +00:00
A free Windows-compatible Operating System - mirrored from GitHub
![]() Fix a catastrophic bug in S/G DMA. There is a subtle difference between the S/G DMA APIs and the old AllocateAdapterChannel API when it comes to having multiple requests in flight. Callers of (Io)AllocateAdapterChannel CANNOT queue another request until the AdapterControlRoutine is called. S/G DMA allows multiple concurrent DMA requests, but ROS was using IoAllocateAdapterChannel in the S/G API. As a result, the wait block stored in the device object was unexpectedly reinitalized and queued again. This results in a leak of the originally queued request context, potentially performing the new DMA operation twice while dropping the old request, and use after free of the context passed to HalpScatterGatherAdapterControl. svn path=/trunk/; revision=63898 |
||
---|---|---|
reactos | ||
rosapps | ||
rostests | ||
wallpaper |