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
- Correctly manage object lifetime in CDefaultContextMenu. Members of DEFCONTEXTMENU need to be referenced or cloned in order to keep them.
CORE-8430 #resolve
svn path=/trunk/; revision=63884
- Fix list walk in NpCancelWaiter -- we cannot access the list entry after using RemoveEntryList on it
- Make the logic in NpCancelWaiter more readable
CORE-8442 #resolve
svn path=/trunk/; revision=63883
- Assert that the thread's sent message queue matches change bits in UserDbgAssertThreadInfo. Suggested by Giannis.
CORE-7013
svn path=/trunk/; revision=63880
CORE-5006 CORE-6397 CORE-8424 #comment Fixes from the condrv_restructure branch (rev.63841) merged back to trunk in revision 63877.
svn path=/trunk/; revision=63877
- Clear appropriate message bits when removing a sent message in FindRemoveAsyncMsg. Thanks to Giannis.
- Fix list walk in FindRemoveAsyncMsg
CORE-7013 #resolve
svn path=/trunk/; revision=63875
- Correctly check for in-buffer memory in PointerFree. Fixes invalid free e.g. when calling StartService without service arguments
svn path=/trunk/; revision=63871
- Gracefully handle ConvertStringSidToSid failures in InstallBuiltinAccounts and InstallPrivileges. Fixes invalid frees in second stage.
svn path=/trunk/; revision=63861
- Don't crash when a directory is specified instead of a file list (i.e. specified_files.root.normalized_name == NULL)
svn path=/trunk/; revision=63860
- Greatly optimize file icon retrieval by reducing the times we try to access the disk.
- Store icons in a binary tree in the shell icon cache for faster retrieval.
Patch by Huw Campbell committed at the request of Giannis Adamopoulos.
svn path=/trunk/; revision=63845
- separate the custom target and the custom command generating reactos.cab, so that it isn't regenerated each time a bootcd is built
Note to make user: I tried a hack so that the sequence 'make module/fast reactos_cab/fast bootcd/fast' still works, but this is untested. Please use ninja if you really want fast dependency resolution.
svn path=/trunk/; revision=63837
- Mark object types as not having ObjectCreateInfo on creation. Otherwise ObpObjectType's TypeList gets corrupted when a handle to an object type is created (as kmtest:ObTypes does) and ObpIncrementHandleCount tries to insert the list entry a second time.
CORE-8423 #resolve
svn path=/trunk/; revision=63833
- Base data queue entry on the right struct member in NpCompleteStalledWrites. Fixes list entry corruption found in CORE-8419.
svn path=/trunk/; revision=63826
- Use ObpTypeObjectType's lock when modifying object type global properties, not the new object type's
- Correctly free string returned by RtlUnicodeStringToAnsiString
svn path=/trunk/; revision=63825
Use -Wno-error option when building with link-time optimization.
[BROWSEUI]
"Fix" multiple definition of (non-virtual thunk to) QueryInterface errors.
Binutils linker bug.
svn path=/trunk/; revision=63824
- Add inline asm dependencies to fix undefined reference errors when
building with link-time optimization.
- Improve formatting.
- No functional changes.
svn path=/trunk/; revision=63823