Gabriel Ivăncescu : jscript: Don't allow starting script using state from uninitialized.

Alexandre Julliard julliard at winehq.org
Fri Jun 3 15:53:08 CDT 2022


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

Author: Gabriel Ivăncescu <gabrielopcode at gmail.com>
Date:   Thu Jun  2 20:00:43 2022 +0300

jscript: Don't allow starting script using state from uninitialized.

Signed-off-by: Gabriel Ivăncescu <gabrielopcode at gmail.com>
Signed-off-by: Jacek Caban <jacek at codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard at winehq.org>

---

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

diff --git a/dlls/jscript/jscript.c b/dlls/jscript/jscript.c
index 8cf141d3990..d6028e69888 100644
--- a/dlls/jscript/jscript.c
+++ b/dlls/jscript/jscript.c
@@ -824,7 +824,7 @@ static HRESULT WINAPI JScript_SetScriptState(IActiveScript *iface, SCRIPTSTATE s
     switch(ss) {
     case SCRIPTSTATE_STARTED:
     case SCRIPTSTATE_CONNECTED: /* FIXME */
-        if(This->ctx->state == SCRIPTSTATE_CLOSED)
+        if(This->ctx->state == SCRIPTSTATE_UNINITIALIZED || This->ctx->state == SCRIPTSTATE_CLOSED)
             return E_UNEXPECTED;
 
         exec_queued_code(This);
diff --git a/dlls/jscript/tests/jscript.c b/dlls/jscript/tests/jscript.c
index 8c985e5c6a5..872354161fc 100644
--- a/dlls/jscript/tests/jscript.c
+++ b/dlls/jscript/tests/jscript.c
@@ -863,6 +863,12 @@ static void test_jscript_uninitializing(void)
     hres = IActiveScript_SetScriptState(script, SCRIPTSTATE_UNINITIALIZED);
     ok(hres == S_OK, "SetScriptState(SCRIPTSTATE_UNINITIALIZED) failed: %08lx\n", hres);
 
+    hres = IActiveScript_SetScriptState(script, SCRIPTSTATE_STARTED);
+    ok(hres == E_UNEXPECTED, "SetScriptState(SCRIPTSTATE_STARTED) returned: %08lx\n", hres);
+
+    hres = IActiveScript_SetScriptState(script, SCRIPTSTATE_CONNECTED);
+    ok(hres == E_UNEXPECTED, "SetScriptState(SCRIPTSTATE_CONNECTED) returned: %08lx\n", hres);
+
     SET_EXPECT(GetLCID);
     SET_EXPECT(OnStateChange_INITIALIZED);
     hres = IActiveScript_SetScriptSite(script, &ActiveScriptSite);




More information about the wine-cvs mailing list