[Bug 33271] New: advapi32 OpenServiceW on non-existing service causes crash in SERV_OpenServiceW() if 'service' debug channel is used

wine-bugs at winehq.org wine-bugs at winehq.org
Sun Mar 24 18:14:22 CDT 2013


http://bugs.winehq.org/show_bug.cgi?id=33271

             Bug #: 33271
           Summary: advapi32 OpenServiceW on non-existing service causes
                    crash in SERV_OpenServiceW() if 'service' debug
                    channel is used
           Product: Wine
           Version: 1.5.26
          Platform: x86
        OS/Version: Linux
            Status: NEW
          Severity: normal
          Priority: P2
         Component: advapi32
        AssignedTo: wine-bugs at winehq.org
        ReportedBy: focht at gmx.net
    Classification: Unclassified


Hello folks,

found while using +service debug channel on app that tries to start a non
existing service...

Source:
http://source.winehq.org/git/wine.git/blob/08238b83b8282a60eef3b0fc5afcdb913505799e:/dlls/advapi32/service.c#l932

--- snip ---
 932 DWORD SERV_OpenServiceW( SC_HANDLE hSCManager, LPCWSTR lpServiceName,
 933                          DWORD dwDesiredAccess, SC_HANDLE *handle )
 934 {
 935     DWORD err;
 936 
 937     TRACE("%p %s %d\n", hSCManager, debugstr_w(lpServiceName),
dwDesiredAccess);
 938 
 939     if (!hSCManager)
 940         return ERROR_INVALID_HANDLE;
 941 
 942     __TRY
 943     {
 944         err = svcctl_OpenServiceW(hSCManager, lpServiceName,
dwDesiredAccess, (SC_RPC_HANDLE *)handle);
 945     }
 946     __EXCEPT(rpc_filter)
 947     {
 948         err = map_exception_code(GetExceptionCode());
 949     }
 950     __ENDTRY
 951 
 952     if (err != ERROR_SUCCESS)
 953         handle = 0;
 954 
 955     TRACE("returning %p\n", *handle);
 956     return err;
 957 }
--- snip ---

Line 953: "*handle = 0" is what you want ;-)

Regards

-- 
Configure bugmail: http://bugs.winehq.org/userprefs.cgi?tab=email
Do not reply to this email, post in Bugzilla using the
above URL to reply.
------- You are receiving this mail because: -------
You are watching all bug changes.



More information about the wine-bugs mailing list