https://git.reactos.org/?p=reactos.git;a=commitdiff;h=5b83d86af52907ff7c77f…
commit 5b83d86af52907ff7c77fff9c2fea3f5d714f5e6
Author:     Thomas Faber <thomas.faber(a)reactos.org>
AuthorDate: Tue Dec 31 21:07:39 2019 +0100
Commit:     Thomas Faber <thomas.faber(a)reactos.org>
CommitDate: Fri Jan 3 11:21:24 2020 +0100
    [WIN32K:NTGDI] Add missing probe to NtGdiGetPath.
---
 win32ss/gdi/ntgdi/path.c | 19 ++++++++++++++++---
 1 file changed, 16 insertions(+), 3 deletions(-)
diff --git a/win32ss/gdi/ntgdi/path.c b/win32ss/gdi/ntgdi/path.c
index 4a5277a9fe1..552bc9c4f54 100644
--- a/win32ss/gdi/ntgdi/path.c
+++ b/win32ss/gdi/ntgdi/path.c
@@ -222,7 +222,7 @@ BOOL PATH_RestorePath( DC *dst, DC *src )
        PATH_AssignGdiPath(pdstPath, psrcPath);
        PATH_UnlockPath(pdstPath);
-       PATH_UnlockPath(psrcPath);
+       PATH_UnlockPath(psrcPath);
     }
     else
     {
@@ -1405,7 +1405,7 @@ PATH_PathToRegion(
     INT Mode,
     PREGION Rgn)
 {
-    int i, pos, polygons;
+    int i, pos, polygons;
     PULONG counts;
     int Ret;
@@ -2694,8 +2694,21 @@ NtGdiGetPath(
 {
     INT ret = -1;
     PPATH pPath;
+    DC *dc;
+
+    _SEH2_TRY
+    {
+        ProbeForWrite(Points, nSize * sizeof(*Points), sizeof(ULONG));
+        ProbeForWrite(Types, nSize, 1);
+    }
+    _SEH2_EXCEPT(EXCEPTION_EXECUTE_HANDLER)
+    {
+        SetLastNtError(_SEH2_GetExceptionCode());
+        _SEH2_YIELD(return -1);
+    }
+    _SEH2_END
-    DC *dc = DC_LockDc(hDC);
+    dc = DC_LockDc(hDC);
     DPRINT("NtGdiGetPath start\n");
     if (!dc)
     {