NTDLL/get_full_path_helper

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



Changelog:
	dlls/ntdll/path.c: get_full_path_helper
	Handle the case \\.\\ as intended
	Explicitly typecase  the arguments for memmove

Otherwise the calculation of the bytes to move went astray for me (gcc
version 3.2) and resulted in Heap corruption.

-- 
Uwe Bonnes                bon@elektron.ikp.physik.tu-darmstadt.de

Institut fuer Kernphysik  Schlossgartenstrasse 9  64289 Darmstadt
--------- Tel. 06151 162516 -------- Fax. 06151 164321 ----------
Index: wine/dlls/ntdll/path.c
===================================================================
RCS file: /home/wine/wine/dlls/ntdll/path.c,v
retrieving revision 1.10
diff -u -r1.10 path.c
--- wine/dlls/ntdll/path.c	8 Oct 2003 03:51:31 -0000	1.10
+++ wine/dlls/ntdll/path.c	25 Oct 2003 16:40:04 -0000
@@ -321,6 +321,7 @@
     LPWSTR              ptr;
     UNICODE_STRING*     cd;
 
+    TRACE("name %s size %lu\n",debugstr_w(name),size);
     reqsize = sizeof(WCHAR); /* '\0' at the end */
 
     RtlAcquirePebLock();
@@ -499,7 +500,7 @@
                         /* either collapse \foo\.. into \ or \.. into \ */
                         if (prev < buffer + mark) prev = p - 1;
                         reqsize -= (p + 2 - prev) * sizeof(WCHAR);
-                        memmove(prev, p + 2, buffer + reqsize - prev + sizeof(WCHAR));
+                        memmove(prev, p + 2, (ULONG)buffer + reqsize - (ULONG)prev + sizeof(WCHAR));
                         p = prev;
                     }
                     break;
@@ -511,7 +512,7 @@
                 break;
             case '\\':
                 reqsize -= 2 * sizeof(WCHAR);
-                memmove(ptr, ptr + 2, buffer + reqsize - ptr + sizeof(WCHAR));
+                memmove(p, p + 2, (ULONG)buffer + reqsize - (ULONG)p + sizeof(WCHAR));
                 break;
             }
         }


[Index of Archives]     [Gimp for Windows]     [Red Hat]     [Samba]     [Yosemite Camping]     [Graphics Cards]     [Wine Home]

  Powered by Linux