https://git.reactos.org/?p=reactos.git;a=commitdiff;h=501c2bdd63c4d4b97c4bc…
commit 501c2bdd63c4d4b97c4bc3b54241abe53e0fabdf
Author: Hermès Bélusca-Maïto <hermes.belusca-maito(a)reactos.org>
AuthorDate: Sun Oct 22 21:57:59 2023 +0200
Commit: Hermès Bélusca-Maïto <hermes.belusca-maito(a)reactos.org>
CommitDate: Mon Oct 23 18:18:45 2023 +0200
[NTOS:LPC] Fix input parameter for ProbeAndCaptureUnicodeString (#5815)
Addendum to commit b3c55b9e6 (PR #4399).
Passing &CapturedObjectName as pointer to be probed and captured would
fail if e.g. PreviousMode == UserMode, since that pointer is always in
kernel space. Instead, pass the original user-mode pointer.
Bug caught by Timo Kreuzer ;)
---
ntoskrnl/lpc/create.c | 7 ++++---
1 file changed, 4 insertions(+), 3 deletions(-)
diff --git a/ntoskrnl/lpc/create.c b/ntoskrnl/lpc/create.c
index 7c017b6b7e1..2f4d5b9622a 100644
--- a/ntoskrnl/lpc/create.c
+++ b/ntoskrnl/lpc/create.c
@@ -83,8 +83,9 @@ LpcpCreatePort(OUT PHANDLE PortHandle,
}
else
{
- if (ObjectAttributes->ObjectName)
- CapturedObjectName = *(ObjectAttributes->ObjectName);
+ ObjectName = ObjectAttributes->ObjectName;
+ if (ObjectName)
+ CapturedObjectName = *ObjectName;
}
/* Normalize the buffer pointer in case we don't have
@@ -96,7 +97,7 @@ LpcpCreatePort(OUT PHANDLE PortHandle,
/* Capture the port name for DPRINT only - ObCreateObject does its
* own capture. As it is used only for debugging, ignore any failure;
* the string is zeroed out in such case. */
- ProbeAndCaptureUnicodeString(&CapturedPortName, PreviousMode, &CapturedObjectName);
+ ProbeAndCaptureUnicodeString(&CapturedPortName, PreviousMode, ObjectName);
LPCTRACE(LPC_CREATE_DEBUG, "Name: %wZ\n", &CapturedPortName);
ReleaseCapturedUnicodeString(&CapturedPortName, PreviousMode);
#endif
https://git.reactos.org/?p=reactos.git;a=commitdiff;h=855008d97b2c7e1a1b72a…
commit 855008d97b2c7e1a1b72ad268b68d83c739ebc6d
Author: Jesús Sanz del Rey <jesussanz2003(a)gmail.com>
AuthorDate: Sat Oct 21 18:51:54 2023 +0200
Commit: GitHub <noreply(a)github.com>
CommitDate: Sat Oct 21 18:51:54 2023 +0200
[COMCTL32] Invalidate LVIS_CUT selected items too (#4218)
This fixes icons that should be drawn transparently not showing as such until window gets repainted.
For example, hidden shell folders that are not drawn transparently until the filebrowser window is resized...
CORE-16722
---
dll/win32/comctl32/listview.c | 4 ++++
1 file changed, 4 insertions(+)
diff --git a/dll/win32/comctl32/listview.c b/dll/win32/comctl32/listview.c
index 9d6609ffd71..5bd7e287a8b 100644
--- a/dll/win32/comctl32/listview.c
+++ b/dll/win32/comctl32/listview.c
@@ -2276,7 +2276,11 @@ static void LISTVIEW_InvalidateSelectedItems(const LISTVIEW_INFO *infoPtr)
iterator_frameditems(&i, infoPtr, &infoPtr->rcList);
while(iterator_next(&i))
{
+#ifdef __REACTOS__
+ if (LISTVIEW_GetItemState(infoPtr, i.nItem, LVIS_SELECTED | LVIS_CUT))
+#else
if (LISTVIEW_GetItemState(infoPtr, i.nItem, LVIS_SELECTED))
+#endif
LISTVIEW_InvalidateItem(infoPtr, i.nItem);
}
iterator_destroy(&i);