Alexandre Julliard :
Fix a couple of overflowing heap allocations revealed by the previous
change .
Alexandre Julliard
julliard at wine.codeweavers.com
Tue May 22 06:59:53 CDT 2007
Module: wine
Branch: master
Commit: be59e2bb5396ac40568e999c3ccd6a609db97e00
URL: http://source.winehq.org/git/wine.git/?a=commit;h=be59e2bb5396ac40568e999c3ccd6a609db97e00
Author: Alexandre Julliard <julliard at winehq.org>
Date: Tue May 22 11:59:36 2007 +0200
Fix a couple of overflowing heap allocations revealed by the previous change.
---
dlls/ntdll/file.c | 5 +++--
dlls/wininet/internet.c | 7 +++++++
2 files changed, 10 insertions(+), 2 deletions(-)
diff --git a/dlls/ntdll/file.c b/dlls/ntdll/file.c
index 4936bb2..3265ed5 100644
--- a/dlls/ntdll/file.c
+++ b/dlls/ntdll/file.c
@@ -1449,9 +1449,10 @@ NTSTATUS WINAPI NtQueryInformationFile( HANDLE hFile, PIO_STATUS_BLOCK io,
SERVER_END_REQ;
if (!io->u.Status)
{
+ char *tmpbuf;
ULONG size = info->MaximumMessageSize ? info->MaximumMessageSize : 0x10000;
- char *tmpbuf = RtlAllocateHeap( GetProcessHeap(), 0, size );
- if (tmpbuf)
+ if (size > 0x10000) size = 0x10000;
+ if ((tmpbuf = RtlAllocateHeap( GetProcessHeap(), 0, size )))
{
int fd, needs_close;
if (!server_get_unix_fd( hFile, FILE_READ_DATA, &fd, &needs_close, NULL, NULL ))
diff --git a/dlls/wininet/internet.c b/dlls/wininet/internet.c
index 3bfa62f..b507312 100644
--- a/dlls/wininet/internet.c
+++ b/dlls/wininet/internet.c
@@ -1044,6 +1044,13 @@ BOOL WINAPI InternetCrackUrlA(LPCSTR lpszUrl, DWORD dwUrlLength, DWORD dwFlags,
WCHAR* lpwszUrl;
TRACE("(%s %u %x %p)\n", debugstr_a(lpszUrl), dwUrlLength, dwFlags, lpUrlComponents);
+
+ if (!lpszUrl || !*lpszUrl)
+ {
+ INTERNET_SetLastError(ERROR_INVALID_PARAMETER);
+ return FALSE;
+ }
+
if(dwUrlLength<=0)
dwUrlLength=-1;
nLength=MultiByteToWideChar(CP_ACP,0,lpszUrl,dwUrlLength,NULL,0);
More information about the wine-cvs
mailing list