urlmon: Fix incorrect pointer arithmetic (too conversative) in map_url_to_zone.
Nikolay Sivov
bunglehead at gmail.com
Sun May 22 22:58:43 CDT 2011
On Sun, May 22, 2011 at 10:53 PM, Gerald Pfeifer <gerald at pfeifer.com> wrote:
> The difference between two pointers (of the same type) is the number
> of elements, not the number of bytes.
That's why it was divided by element size to get 'number of elements'.
What's a problem?
> 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-devel
mailing list