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