Hans Leidekker : wininet: Fix buffer size query for InternetQueryOption( INTERNET_OPTION_PROXY).
Alexandre Julliard
julliard at winehq.org
Sat Oct 18 13:38:23 CDT 2008
Module: wine
Branch: master
Commit: 4615b1c0b41f66dfd6120f630cda8678b8b06265
URL: http://source.winehq.org/git/wine.git/?a=commit;h=4615b1c0b41f66dfd6120f630cda8678b8b06265
Author: Hans Leidekker <hans at codeweavers.com>
Date: Fri Oct 17 16:24:15 2008 +0200
wininet: Fix buffer size query for InternetQueryOption(INTERNET_OPTION_PROXY).
---
dlls/wininet/internet.c | 10 +++++++---
1 files changed, 7 insertions(+), 3 deletions(-)
diff --git a/dlls/wininet/internet.c b/dlls/wininet/internet.c
index 277ea23..353b156 100644
--- a/dlls/wininet/internet.c
+++ b/dlls/wininet/internet.c
@@ -546,8 +546,10 @@ static DWORD APPINFO_QueryOption(WININETHANDLEHEADER *hdr, DWORD option, void *b
if (ai->lpszProxyBypass)
proxyBypassBytesRequired = (lstrlenW(ai->lpszProxyBypass) + 1) * sizeof(WCHAR);
if (*size < sizeof(INTERNET_PROXY_INFOW) + proxyBytesRequired + proxyBypassBytesRequired)
- return ERROR_INSUFFICIENT_BUFFER;
-
+ {
+ *size = sizeof(INTERNET_PROXY_INFOW) + proxyBytesRequired + proxyBypassBytesRequired;
+ return ERROR_INSUFFICIENT_BUFFER;
+ }
proxy = (LPWSTR)((LPBYTE)buffer + sizeof(INTERNET_PROXY_INFOW));
proxy_bypass = (LPWSTR)((LPBYTE)buffer + sizeof(INTERNET_PROXY_INFOW) + proxyBytesRequired);
@@ -577,8 +579,10 @@ static DWORD APPINFO_QueryOption(WININETHANDLEHEADER *hdr, DWORD option, void *b
proxyBypassBytesRequired = WideCharToMultiByte(CP_ACP, 0, ai->lpszProxyBypass, -1,
NULL, 0, NULL, NULL);
if (*size < sizeof(INTERNET_PROXY_INFOA) + proxyBytesRequired + proxyBypassBytesRequired)
+ {
+ *size = sizeof(INTERNET_PROXY_INFOA) + proxyBytesRequired + proxyBypassBytesRequired;
return ERROR_INSUFFICIENT_BUFFER;
-
+ }
proxy = (LPSTR)((LPBYTE)buffer + sizeof(INTERNET_PROXY_INFOA));
proxy_bypass = (LPSTR)((LPBYTE)buffer + sizeof(INTERNET_PROXY_INFOA) + proxyBytesRequired);
More information about the wine-cvs
mailing list