From c071c35012d6cc147c0f0e09cfde523fc74c40b2 Mon Sep 17 00:00:00 2001 From: Dmitry Chapyshev Date: Sat, 6 Jun 2009 08:14:11 +0000 Subject: [PATCH] SearchPathA() - Fix calculation of buffer size (fixes Skype crash) Patch by Mikhail Denisenko (denisenkom@gmail.com) See issue #4526 for more details. svn path=/trunk/; revision=41295 --- reactos/dll/win32/kernel32/file/dir.c | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/reactos/dll/win32/kernel32/file/dir.c b/reactos/dll/win32/kernel32/file/dir.c index 6903f5c8b49..bbf9929ceeb 100644 --- a/reactos/dll/win32/kernel32/file/dir.c +++ b/reactos/dll/win32/kernel32/file/dir.c @@ -885,7 +885,7 @@ SearchPathA ( 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 @@ SearchPathA ( goto Cleanup; } - Buffer.MaximumLength = (USHORT)nBufferLength; + Buffer.MaximumLength = min(nBufferLength, USHRT_MAX); Buffer.Buffer = lpBuffer; RetValue = SearchPathW (NULL == lpPath ? NULL : PathU.Buffer,