From 203c47e60470812dce2d619bb856a61d9cc2a535 Mon Sep 17 00:00:00 2001 From: Jacek Caban Date: Wed, 25 Feb 2015 12:59:20 +0100 Subject: [PATCH] mshtml: Correctly handle S_OK with NULL URL return from TranslateUrl. --- dlls/mshtml/navigate.c | 2 +- dlls/mshtml/tests/htmldoc.c | 6 ++++++ 2 files changed, 7 insertions(+), 1 deletion(-) diff --git a/dlls/mshtml/navigate.c b/dlls/mshtml/navigate.c index c2d4603cb7d..39e27333666 100644 --- a/dlls/mshtml/navigate.c +++ b/dlls/mshtml/navigate.c @@ -2324,7 +2324,7 @@ static HRESULT translate_uri(HTMLOuterWindow *window, IUri *orig_uri, BSTR *ret_ hres = IDocHostUIHandler_TranslateUrl(window->doc_obj->hostui, 0, display_uri, &translated_url); - if(hres == S_OK) { + if(hres == S_OK && translated_url) { TRACE("%08x %s -> %s\n", hres, debugstr_w(display_uri), debugstr_w(translated_url)); SysFreeString(display_uri); hres = create_uri(translated_url, 0, &uri); diff --git a/dlls/mshtml/tests/htmldoc.c b/dlls/mshtml/tests/htmldoc.c index 3b332d1db7c..33f4696d3e6 100644 --- a/dlls/mshtml/tests/htmldoc.c +++ b/dlls/mshtml/tests/htmldoc.c @@ -2614,6 +2614,12 @@ static HRESULT WINAPI DocHostUIHandler_TranslateUrl(IDocHostUIHandler2 *iface, D ok(ppchURLOut != NULL, "ppchURLOut == NULL\n"); ok(!*ppchURLOut, "*ppchURLOut = %p\n", *ppchURLOut); + /* Not related to hash navigation, just return NULL and S_OK in some cases. */ + if(loading_hash) { + *ppchURLOut = NULL; + return S_OK; + } + return S_FALSE; }