Dmitry Timoshkov : schedsvc: Fix NetrJobGetInfo return value in case of invalid job id.
Alexandre Julliard
julliard at winehq.org
Wed Apr 25 15:11:15 CDT 2018
Module: wine
Branch: master
Commit: 31d2026537816bdc94b52c2fe2c778815f2d48f5
URL: https://source.winehq.org/git/wine.git/?a=commit;h=31d2026537816bdc94b52c2fe2c778815f2d48f5
Author: Dmitry Timoshkov <dmitry at baikal.ru>
Date: Wed Apr 25 11:29:45 2018 +0800
schedsvc: Fix NetrJobGetInfo return value in case of invalid job id.
Signed-off-by: Dmitry Timoshkov <dmitry at baikal.ru>
Signed-off-by: Alexandre Julliard <julliard at winehq.org>
---
dlls/schedsvc/atsvc.c | 3 ++-
dlls/schedsvc/tests/atsvcapi.c | 8 +++++---
include/wine/atsvc.idl | 2 ++
3 files changed, 9 insertions(+), 4 deletions(-)
diff --git a/dlls/schedsvc/atsvc.c b/dlls/schedsvc/atsvc.c
index 83e7dca..2010245 100644
--- a/dlls/schedsvc/atsvc.c
+++ b/dlls/schedsvc/atsvc.c
@@ -686,7 +686,7 @@ DWORD __cdecl NetrJobEnum(ATSVC_HANDLE server_name, AT_ENUM_CONTAINER *container
DWORD __cdecl NetrJobGetInfo(ATSVC_HANDLE server_name, DWORD jobid, AT_INFO **info)
{
struct job_t *job;
- DWORD ret = ERROR_SUCCESS;
+ DWORD ret = APE_AT_ID_NOT_FOUND;
TRACE("%s,%u,%p\n", debugstr_w(server_name), jobid, info);
@@ -706,6 +706,7 @@ DWORD __cdecl NetrJobGetInfo(ATSVC_HANDLE server_name, DWORD jobid, AT_INFO **in
info_ret->Flags = job->info.Flags;
info_ret->Command = heap_strdupW(job->info.Command);
*info = info_ret;
+ ret = ERROR_SUCCESS;
}
}
diff --git a/dlls/schedsvc/tests/atsvcapi.c b/dlls/schedsvc/tests/atsvcapi.c
index 2226480..367c6da 100644
--- a/dlls/schedsvc/tests/atsvcapi.c
+++ b/dlls/schedsvc/tests/atsvcapi.c
@@ -58,7 +58,7 @@ START_TEST(atsvcapi)
WCHAR server_name[MAX_COMPUTERNAME_LENGTH + 1];
PTOP_LEVEL_EXCEPTION_FILTER old_exception_filter;
AT_ENUM_CONTAINER container;
- AT_INFO info;
+ AT_INFO info, *info2;
DWORD ret, i, total, start_index, jobid, try, try_count;
BOOL found;
@@ -104,6 +104,10 @@ START_TEST(atsvcapi)
test_failures = 1;
test_skipped = 0;
+ info2 = NULL;
+ ret = NetrJobGetInfo(server_name, 0xdeadbeef, &info2);
+ ok(ret == APE_AT_ID_NOT_FOUND || broken(1) /* vista and w2008 return rubbish here */, "wrong error %u\n", ret);
+
try_count = 5;
for (try = 1; try <= try_count; try++)
@@ -127,8 +131,6 @@ START_TEST(atsvcapi)
for (i = 0; i < container.EntriesRead; i++)
{
- AT_INFO *info2;
-
trace("%u: jobid %u, command %s\n", i, container.Buffer[i].JobId, wine_dbgstr_w(container.Buffer[i].Command));
if (container.Buffer[i].JobId == jobid ||
diff --git a/include/wine/atsvc.idl b/include/wine/atsvc.idl
index c1fce98..5c723ed 100644
--- a/include/wine/atsvc.idl
+++ b/include/wine/atsvc.idl
@@ -29,6 +29,8 @@ import "ocidl.idl";
]
interface atsvc
{
+ const DWORD APE_AT_ID_NOT_FOUND = 0x00000ede;
+
typedef [handle] const WCHAR *ATSVC_HANDLE;
typedef struct _AT_ENUM
More information about the wine-cvs
mailing list