Jacek Caban : vbscript: Don't allow changing script state when script site is not set.

Alexandre Julliard julliard at winehq.org
Tue Nov 5 16:11:44 CST 2019


Module: wine
Branch: master
Commit: 706898dcbb5d1553a3e9f60c422f9112fad57694
URL:    https://source.winehq.org/git/wine.git/?a=commit;h=706898dcbb5d1553a3e9f60c422f9112fad57694

Author: Jacek Caban <jacek at codeweavers.com>
Date:   Tue Nov  5 14:08:09 2019 +0100

vbscript: Don't allow changing script state when script site is not set.

Signed-off-by: Jacek Caban <jacek at codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard at winehq.org>

---

 dlls/vbscript/tests/vbscript.c | 5 +++++
 dlls/vbscript/vbscript.c       | 2 +-
 2 files changed, 6 insertions(+), 1 deletion(-)

diff --git a/dlls/vbscript/tests/vbscript.c b/dlls/vbscript/tests/vbscript.c
index fdbfc4465b..fd769cc280 100644
--- a/dlls/vbscript/tests/vbscript.c
+++ b/dlls/vbscript/tests/vbscript.c
@@ -713,6 +713,11 @@ static void test_vbscript_uninitializing(void)
 
     test_no_script_dispatch(script);
 
+    hres = IActiveScript_SetScriptState(script, SCRIPTSTATE_STARTED);
+    ok(hres == E_UNEXPECTED, "SetScriptState(SCRIPTSTATE_STARTED) failed: %08x\n", hres);
+    hres = IActiveScript_SetScriptState(script, SCRIPTSTATE_INITIALIZED);
+    ok(hres == E_UNEXPECTED, "SetScriptState(SCRIPTSTATE_INITIALIZED) failed: %08x\n", hres);
+
     SET_EXPECT(GetLCID);
     SET_EXPECT(OnStateChange_INITIALIZED);
     hres = IActiveScript_SetScriptSite(script, &ActiveScriptSite);
diff --git a/dlls/vbscript/vbscript.c b/dlls/vbscript/vbscript.c
index 59ec577846..ebd100f4e5 100644
--- a/dlls/vbscript/vbscript.c
+++ b/dlls/vbscript/vbscript.c
@@ -457,7 +457,7 @@ static HRESULT WINAPI VBScript_SetScriptState(IActiveScript *iface, SCRIPTSTATE
         return S_OK;
     }
 
-    if(!This->is_initialized)
+    if(!This->is_initialized || !This->ctx->site)
         return E_UNEXPECTED;
 
     switch(ss) {




More information about the wine-cvs mailing list