Module: wine Branch: master Commit: 5401efaef0d12a3c36e4491f6f194d5deb94e73d URL: http://source.winehq.org/git/wine.git/?a=commit;h=5401efaef0d12a3c36e4491f6f...
Author: Jacek Caban jacek@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);