Alexandre Julliard : kernel32: Fix another overflow in GetModuleFileNameExW .

Alexandre Julliard julliard at winehq.org
Tue May 1 13:12:13 CDT 2012


Module: wine
Branch: master
Commit: fd11023e4b44b18af7f9d44b216bcc254fe3b299
URL:    http://source.winehq.org/git/wine.git/?a=commit;h=fd11023e4b44b18af7f9d44b216bcc254fe3b299

Author: Alexandre Julliard <julliard at winehq.org>
Date:   Tue May  1 14:43:46 2012 +0200

kernel32: Fix another overflow in GetModuleFileNameExW.

---

 dlls/kernel32/module.c |   20 +++++++++++---------
 1 files changed, 11 insertions(+), 9 deletions(-)

diff --git a/dlls/kernel32/module.c b/dlls/kernel32/module.c
index 57a24ba..adf8a99 100644
--- a/dlls/kernel32/module.c
+++ b/dlls/kernel32/module.c
@@ -1255,18 +1255,20 @@ DWORD WINAPI K32GetModuleFileNameExW(HANDLE process, HMODULE module,
         return 0;
 
     len = ldr_module.FullDllName.Length / sizeof(WCHAR);
-    if (size <= len)
-    {
-        len = size;
-        size--;
-    }
-
     if (!ReadProcessMemory(process, ldr_module.FullDllName.Buffer,
-                           file_name, size * sizeof(WCHAR), NULL))
+                           file_name, min( len, size ) * sizeof(WCHAR), NULL))
         return 0;
 
-    file_name[size] = 0;
-    return len;
+    if (len < size)
+    {
+        file_name[len] = 0;
+        return len;
+    }
+    else
+    {
+        file_name[size - 1] = 0;
+        return size;
+    }
 }
 
 /***********************************************************************




More information about the wine-cvs mailing list