[PATCH] WinHttpQueryHeaders: set_last_error( ERROR_INSUFFICIENT_BUFFER )
Mikko Rasa
tdb at tdb.fi
Fri Aug 20 00:07:32 CDT 2010
Make sure this is done in all cases
---
dlls/winhttp/request.c | 10 +++++-----
1 files changed, 5 insertions(+), 5 deletions(-)
diff --git a/dlls/winhttp/request.c b/dlls/winhttp/request.c
index 7c1205c..54f92e4 100644
--- a/dlls/winhttp/request.c
+++ b/dlls/winhttp/request.c
@@ -655,7 +655,7 @@ static BOOL query_headers( request_t *request, DWORD level, LPCWSTR name, LPVOID
case WINHTTP_QUERY_VERSION:
{
DWORD len = (strlenW( request->version ) + 1) * sizeof(WCHAR);
- if (len > *buflen)
+ if (len > *buflen || !buffer)
{
set_last_error( ERROR_INSUFFICIENT_BUFFER );
*buflen = len;
@@ -673,7 +673,7 @@ static BOOL query_headers( request_t *request, DWORD level, LPCWSTR name, LPVOID
case WINHTTP_QUERY_STATUS_TEXT:
{
DWORD len = (strlenW( request->status_text ) + 1) * sizeof(WCHAR);
- if (len > *buflen)
+ if (len > *buflen || !buffer)
{
set_last_error( ERROR_INSUFFICIENT_BUFFER );
*buflen = len;
@@ -713,7 +713,7 @@ static BOOL query_headers( request_t *request, DWORD level, LPCWSTR name, LPVOID
if (level & WINHTTP_QUERY_FLAG_NUMBER)
{
int *number = buffer;
- if (sizeof(int) > *buflen)
+ if (sizeof(int) > *buflen || !buffer)
{
set_last_error( ERROR_INSUFFICIENT_BUFFER );
}
@@ -728,7 +728,7 @@ static BOOL query_headers( request_t *request, DWORD level, LPCWSTR name, LPVOID
else if (level & WINHTTP_QUERY_FLAG_SYSTEMTIME)
{
SYSTEMTIME *st = buffer;
- if (sizeof(SYSTEMTIME) > *buflen)
+ if (sizeof(SYSTEMTIME) > *buflen || !buffer)
{
set_last_error( ERROR_INSUFFICIENT_BUFFER );
}
@@ -744,7 +744,7 @@ static BOOL query_headers( request_t *request, DWORD level, LPCWSTR name, LPVOID
{
WCHAR *string = buffer;
DWORD len = (strlenW( header->value ) + 1) * sizeof(WCHAR);
- if (len > *buflen)
+ if (len > *buflen || !buffer)
{
set_last_error( ERROR_INSUFFICIENT_BUFFER );
*buflen = len;
--
1.7.1
More information about the wine-patches
mailing list