urlmon: Fix incorrect pointer arithmetic (too conversative) in map_url_to_zone. (RESEND)

Gerald Pfeifer gerald at pfeifer.com
Sat Jun 4 08:02:42 CDT 2011


Resending:  This really looks like a straightforward bug fix and the
current code definitely wrong???


The difference between two pointers (of the same type) is the number
of elements, not the number of bytes.  Thus the code below was way 
incorrect, luckily only too conversative.

Gerald

---
 dlls/urlmon/sec_mgr.c |    2 +-
 1 files changed, 1 insertions(+), 1 deletions(-)

diff --git a/dlls/urlmon/sec_mgr.c b/dlls/urlmon/sec_mgr.c
index 7b4bb35..75850ee 100644
--- a/dlls/urlmon/sec_mgr.c
+++ b/dlls/urlmon/sec_mgr.c
@@ -529,7 +529,7 @@ static HRESULT map_url_to_zone(LPCWSTR url, DWORD *zone, LPWSTR *ret_url)
         hres = CoInternetParseUrl(secur_url, PARSE_PATH_FROM_URL, 0, path,
                 sizeof(path)/sizeof(WCHAR), &size, 0);
 
-        if(SUCCEEDED(hres) && (ptr = strchrW(path, '\\')) && ptr-path < sizeof(root)/sizeof(WCHAR)) {
+        if(SUCCEEDED(hres) && (ptr = strchrW(path, '\\')) && ptr-path < sizeof(root)) {
             UINT type;
 
             memcpy(root, path, (ptr-path)*sizeof(WCHAR));
-- 
1.7.4.1




More information about the wine-patches mailing list