Dmitry Timoshkov : schedsvc: Return correct error code when a being loaded xml doesn't exist.

Alexandre Julliard julliard at winehq.org
Wed Apr 9 13:52:05 CDT 2014


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

Author: Dmitry Timoshkov <dmitry at baikal.ru>
Date:   Wed Apr  9 18:50:42 2014 +0900

schedsvc: Return correct error code when a being loaded xml doesn't exist.

---

 dlls/schedsvc/schedsvc.c        |    8 +++++++-
 dlls/taskschd/tests/scheduler.c |    1 -
 2 files changed, 7 insertions(+), 2 deletions(-)

diff --git a/dlls/schedsvc/schedsvc.c b/dlls/schedsvc/schedsvc.c
index aa99b03..a0daab2 100644
--- a/dlls/schedsvc/schedsvc.c
+++ b/dlls/schedsvc/schedsvc.c
@@ -245,10 +245,16 @@ static int detect_encoding(const void *buffer, DWORD size)
 static HRESULT read_xml(const WCHAR *name, WCHAR **xml)
 {
     HANDLE hfile;
-    DWORD size;
+    DWORD size, attrs;
     char *src;
     int cp;
 
+    attrs = GetFileAttributesW(name);
+    if (attrs == INVALID_FILE_ATTRIBUTES)
+        return HRESULT_FROM_WIN32(GetLastError());
+    if (attrs & FILE_ATTRIBUTE_DIRECTORY)
+        return HRESULT_FROM_WIN32(ERROR_PATH_NOT_FOUND);
+
     hfile = CreateFileW(name, GENERIC_READ, FILE_SHARE_READ, NULL, OPEN_EXISTING, 0, 0);
     if (hfile == INVALID_HANDLE_VALUE)
         return HRESULT_FROM_WIN32(GetLastError());
diff --git a/dlls/taskschd/tests/scheduler.c b/dlls/taskschd/tests/scheduler.c
index 5e5d303..3f8ba3e 100644
--- a/dlls/taskschd/tests/scheduler.c
+++ b/dlls/taskschd/tests/scheduler.c
@@ -760,7 +760,6 @@ static void test_GetTask(void)
     ok(hr == S_OK, "CreateFolder error %#x\n", hr);
 
     hr = ITaskFolder_GetTask(root, Wine, &task1);
-todo_wine
     ok(hr == HRESULT_FROM_WIN32(ERROR_PATH_NOT_FOUND), "expected ERROR_PATH_NOT_FOUND, got %#x\n", hr);
 
     MultiByteToWideChar(CP_ACP, 0, xml1, -1, xmlW, sizeof(xmlW)/sizeof(xmlW[0]));




More information about the wine-cvs mailing list