Alistair Leslie-Hughes : msxml3: Correct MSXML object safety tests.

Alexandre Julliard julliard at winehq.org
Tue Sep 6 11:35:53 CDT 2011


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

Author: Alistair Leslie-Hughes <leslie_alistair at hotmail.com>
Date:   Tue Aug 30 22:27:02 2011 +1000

msxml3: Correct MSXML object safety tests.

---

 dlls/msxml3/domdoc.c       |    3 ++-
 dlls/msxml3/httprequest.c  |    3 ++-
 dlls/msxml3/tests/domdoc.c |   21 +++++++++++----------
 3 files changed, 15 insertions(+), 12 deletions(-)

diff --git a/dlls/msxml3/domdoc.c b/dlls/msxml3/domdoc.c
index 2b2416d..d4fcc1c 100644
--- a/dlls/msxml3/domdoc.c
+++ b/dlls/msxml3/domdoc.c
@@ -3430,7 +3430,8 @@ static HRESULT WINAPI domdoc_Safety_SetInterfaceSafetyOptions(IObjectSafety *ifa
     if ((mask & ~SAFETY_SUPPORTED_OPTIONS) != 0)
         return E_FAIL;
 
-    This->safeopt = enabled & mask & SAFETY_SUPPORTED_OPTIONS;
+    This->safeopt = (This->safeopt & ~mask) | (mask & enabled);
+
     return S_OK;
 }
 
diff --git a/dlls/msxml3/httprequest.c b/dlls/msxml3/httprequest.c
index 436380c..8203129 100644
--- a/dlls/msxml3/httprequest.c
+++ b/dlls/msxml3/httprequest.c
@@ -1131,7 +1131,8 @@ static HRESULT WINAPI httprequest_Safety_SetInterfaceSafetyOptions(IObjectSafety
     if ((mask & ~SAFETY_SUPPORTED_OPTIONS) != 0)
         return E_FAIL;
 
-    This->safeopt = enabled & mask & SAFETY_SUPPORTED_OPTIONS;
+    This->safeopt = (This->safeopt & ~mask) | (mask & enabled);
+
     return S_OK;
 }
 
diff --git a/dlls/msxml3/tests/domdoc.c b/dlls/msxml3/tests/domdoc.c
index 2c3de42..42b3b05 100644
--- a/dlls/msxml3/tests/domdoc.c
+++ b/dlls/msxml3/tests/domdoc.c
@@ -4457,11 +4457,11 @@ static void _test_IObjectSafety_common(unsigned line, IObjectSafety *safety)
     ok_(__FILE__,line)(hr == S_OK, "ret %08x\n", hr );
     hr = IObjectSafety_GetInterfaceSafetyOptions(safety, NULL, &supported, &enabled);
     ok_(__FILE__,line)(hr == S_OK, "ret %08x\n", hr );
-    todo_wine
-    ok_(__FILE__,line)(broken(enabled == INTERFACESAFE_FOR_UNTRUSTED_CALLER) ||
-       enabled == (INTERFACESAFE_FOR_UNTRUSTED_CALLER | INTERFACE_USES_SECURITY_MANAGER) /* msxml3 SP8+ */,
-         "Expected (INTERFACESAFE_FOR_UNTRUSTED_CALLER | INTERFACE_USES_SECURITY_MANAGER), "
-         "got %08x\n", enabled);
+    ok_(__FILE__,line)(enabled == INTERFACESAFE_FOR_UNTRUSTED_CALLER, "Expected INTERFACESAFE_FOR_UNTRUSTED_CALLER got %08x\n", enabled);
+    ok_(__FILE__,line)(broken(supported == INTERFACESAFE_FOR_UNTRUSTED_CALLER) ||
+       supported == (INTERFACESAFE_FOR_UNTRUSTED_CALLER | INTERFACESAFE_FOR_UNTRUSTED_DATA | INTERFACE_USES_SECURITY_MANAGER) /* msxml3 SP8+ */,
+         "Expected (INTERFACESAFE_FOR_UNTRUSTED_CALLER | INTERFACESAFE_FOR_UNTRUSTED_DATA | INTERFACE_USES_SECURITY_MANAGER), "
+         "got %08x\n", supported);
 
     hr = IObjectSafety_SetInterfaceSafetyOptions(safety, NULL,
                                                          INTERFACESAFE_FOR_UNTRUSTED_DATA,
@@ -4469,11 +4469,12 @@ static void _test_IObjectSafety_common(unsigned line, IObjectSafety *safety)
     ok_(__FILE__,line)(hr == S_OK, "ret %08x\n", hr );
     hr = IObjectSafety_GetInterfaceSafetyOptions(safety, NULL, &supported, &enabled);
     ok_(__FILE__,line)(hr == S_OK, "ret %08x\n", hr );
-    todo_wine
-    ok_(__FILE__,line)(broken(enabled == INTERFACESAFE_FOR_UNTRUSTED_DATA) ||
-       enabled == (INTERFACESAFE_FOR_UNTRUSTED_CALLER | INTERFACESAFE_FOR_UNTRUSTED_DATA) /* msxml3 SP8+ */,
-        "Expected (INTERFACESAFE_FOR_UNTRUSTED_CALLER | INTERFACESAFE_FOR_UNTRUSTED_DATA), "
-        "got %08x\n", enabled);
+    ok_(__FILE__,line)(enabled == (INTERFACESAFE_FOR_UNTRUSTED_CALLER | INTERFACESAFE_FOR_UNTRUSTED_DATA),
+                       "expected INTERFACESAFE_FOR_UNTRUSTED_CALLER | INTERFACESAFE_FOR_UNTRUSTED_DATA got %08x\n", enabled);
+    ok_(__FILE__,line)(broken(supported == INTERFACESAFE_FOR_UNTRUSTED_DATA) ||
+       supported == (INTERFACESAFE_FOR_UNTRUSTED_CALLER | INTERFACESAFE_FOR_UNTRUSTED_DATA | INTERFACE_USES_SECURITY_MANAGER) /* msxml3 SP8+ */,
+        "Expected (INTERFACESAFE_FOR_UNTRUSTED_CALLER | INTERFACESAFE_FOR_UNTRUSTED_DATA | INTERFACE_USES_SECURITY_MANAGER), "
+        "got %08x\n", supported);
 }
 
 static void test_XMLHTTP(void)




More information about the wine-cvs mailing list