[2/5] schedsvc/tests: Add a test for NULL task name passed to SchRpcRegisterTask.
Dmitry Timoshkov
dmitry at baikal.ru
Thu Apr 10 03:41:27 CDT 2014
---
dlls/schedsvc/schedsvc.c | 6 ++++++
dlls/schedsvc/tests/Makefile.in | 2 +-
dlls/schedsvc/tests/rpcapi.c | 16 ++++++++++++++++
3 files changed, 23 insertions(+), 1 deletion(-)
diff --git a/dlls/schedsvc/schedsvc.c b/dlls/schedsvc/schedsvc.c
index eb84998..5ce7d1d 100644
--- a/dlls/schedsvc/schedsvc.c
+++ b/dlls/schedsvc/schedsvc.c
@@ -180,6 +180,12 @@ HRESULT __cdecl SchRpcRegisterTask(const WCHAR *path, const WCHAR *xml, DWORD fl
/* FIXME: assume that validation is performed on the client side */
if (flags & TASK_VALIDATE_ONLY) return S_OK;
+ if (!path)
+ {
+ FIXME("NULL name is not supported\n");
+ return E_INVALIDARG;
+ }
+
full_name = get_full_name(path, &relative_path);
if (!full_name) return E_OUTOFMEMORY;
diff --git a/dlls/schedsvc/tests/Makefile.in b/dlls/schedsvc/tests/Makefile.in
index f671f85..cd56fde 100644
--- a/dlls/schedsvc/tests/Makefile.in
+++ b/dlls/schedsvc/tests/Makefile.in
@@ -1,5 +1,5 @@
TESTDLL = schedsvc.dll
-IMPORTS = rpcrt4
+IMPORTS = rpcrt4 ole32
C_SRCS = \
rpcapi.c
diff --git a/dlls/schedsvc/tests/rpcapi.c b/dlls/schedsvc/tests/rpcapi.c
index 02f6882..beaf7da 100644
--- a/dlls/schedsvc/tests/rpcapi.c
+++ b/dlls/schedsvc/tests/rpcapi.c
@@ -99,6 +99,7 @@ START_TEST(rpcapi)
TASK_NAMES names;
unsigned char *binding_str;
PTOP_LEVEL_EXCEPTION_FILTER old_exception_filter;
+ IID iid;
hr = RpcStringBindingComposeA(NULL, ncalrpc, NULL, NULL, NULL, &binding_str);
ok(hr == RPC_S_OK, "RpcStringBindingCompose error %#x\n", hr);
@@ -517,6 +518,21 @@ todo_wine
hr = SchRpcDelete(Wine, 0);
ok(hr == S_OK, "expected S_OK, got %#x\n", hr);
+ path = NULL;
+ info = NULL;
+ hr = SchRpcRegisterTask(NULL, xmlW, TASK_CREATE, NULL, TASK_LOGON_NONE, 0, NULL, &path, &info);
+todo_wine
+ ok(hr == S_OK, "expected S_OK, got %#x\n", hr);
+ ok(!info, "expected NULL, info %p\n", info);
+if (hr == S_OK)
+{
+ hr = IIDFromString(path, &iid);
+ ok(hr == S_OK, "IIDFromString(%s) error %#x\n", wine_dbgstr_w(path), hr);
+ hr = SchRpcDelete(path, 0);
+ ok(hr == S_OK, "expected S_OK, got %#x\n", hr);
+ MIDL_user_free(path);
+}
+
hr = RpcBindingFree(&rpc_handle);
ok(hr == RPC_S_OK, "RpcBindingFree error %#x\n", hr);
}
--
1.9.2
More information about the wine-patches
mailing list