[ros-diffs] [dchapyshev] 41295: SearchPathA() - Fix calculation of buffer size (fixes Skype crash) Patch by Mikhail Denisenko (denisenkom at gmail.com) See issue #4526 for more details.

dchapyshev at svn.reactos.org dchapyshev at svn.reactos.org
Sat Jun 6 10:14:12 CEST 2009


Author: dchapyshev
Date: Sat Jun  6 12:14:11 2009
New Revision: 41295

URL: http://svn.reactos.org/svn/reactos?rev=41295&view=rev
Log:
SearchPathA()
- Fix calculation of buffer size (fixes Skype crash)
Patch by Mikhail Denisenko (denisenkom at gmail.com)
See issue #4526 for more details.

Modified:
    trunk/reactos/dll/win32/kernel32/file/dir.c

Modified: trunk/reactos/dll/win32/kernel32/file/dir.c
URL: http://svn.reactos.org/svn/reactos/trunk/reactos/dll/win32/kernel32/file/dir.c?rev=41295&r1=41294&r2=41295&view=diff
==============================================================================
--- trunk/reactos/dll/win32/kernel32/file/dir.c [iso-8859-1] (original)
+++ trunk/reactos/dll/win32/kernel32/file/dir.c [iso-8859-1] Sat Jun  6 12:14:11 2009
@@ -885,7 +885,7 @@
                     goto Cleanup;
         }
 
-        BufferU.MaximumLength = (USHORT)nBufferLength * sizeof(WCHAR);
+        BufferU.MaximumLength = min(nBufferLength * sizeof(WCHAR), USHRT_MAX);
         BufferU.Buffer = RtlAllocateHeap (RtlGetProcessHeap (),
                                           0,
                                           BufferU.MaximumLength);
@@ -895,7 +895,7 @@
             goto Cleanup;
         }
 
-        Buffer.MaximumLength = (USHORT)nBufferLength;
+        Buffer.MaximumLength = min(nBufferLength, USHRT_MAX);
         Buffer.Buffer = lpBuffer;
 
         RetValue = SearchPathW (NULL == lpPath ? NULL : PathU.Buffer,



More information about the Ros-diffs mailing list