Jacek Caban : mshtml: Unescape script from javascript: URLs before executing them.

Alexandre Julliard julliard at winehq.org
Mon Jul 23 13:54:24 CDT 2012


Module: wine
Branch: master
Commit: 5401efaef0d12a3c36e4491f6f194d5deb94e73d
URL:    http://source.winehq.org/git/wine.git/?a=commit;h=5401efaef0d12a3c36e4491f6f194d5deb94e73d

Author: Jacek Caban <jacek at codeweavers.com>
Date:   Mon Jul 23 14:03:45 2012 +0200

mshtml: Unescape script from javascript: URLs before executing them.

---

 dlls/mshtml/navigate.c      |    6 ++++++
 dlls/mshtml/tests/htmldoc.c |    2 +-
 2 files changed, 7 insertions(+), 1 deletions(-)

diff --git a/dlls/mshtml/navigate.c b/dlls/mshtml/navigate.c
index ecc8ef3..09c9f3d 100644
--- a/dlls/mshtml/navigate.c
+++ b/dlls/mshtml/navigate.c
@@ -1789,6 +1789,12 @@ static void navigate_javascript_proc(task_t *_task)
     if(FAILED(hres))
         return;
 
+    hres = UrlUnescapeW(code, NULL, NULL, URL_UNESCAPE_INPLACE);
+    if(FAILED(hres)) {
+        SysFreeString(code);
+        return;
+    }
+
     set_download_state(window->doc_obj, 1);
 
     V_VT(&v) = VT_EMPTY;
diff --git a/dlls/mshtml/tests/htmldoc.c b/dlls/mshtml/tests/htmldoc.c
index 803d505..d8cef24 100644
--- a/dlls/mshtml/tests/htmldoc.c
+++ b/dlls/mshtml/tests/htmldoc.c
@@ -6874,7 +6874,7 @@ static void test_HTMLDocument_http(BOOL with_wbapp)
         test_put_href(doc, FALSE, "#test", "http://www.winehq.org/#test", FALSE, TRUE, 0);
         test_travellog(doc);
     }
-    test_put_href(doc, FALSE, NULL, "javascript:external&&undefined", TRUE, FALSE, 0);
+    test_put_href(doc, FALSE, NULL, "javascript:external%20&&undefined", TRUE, FALSE, 0);
     test_put_href(doc, FALSE, NULL, "about:blank", FALSE, FALSE, support_wbapp ? DWL_EXPECT_HISTUPDATE : 0);
     test_put_href(doc, TRUE, NULL, "about:replace", FALSE, FALSE, 0);
 




More information about the wine-cvs mailing list