https://bugs.winehq.org/show_bug.cgi?id=38836
Bug ID: 38836 Summary: PunkBuster 'PnkBstrB' service exits with failure ('StartService' must wait for driver service entry point execution before return) Product: Wine Version: 1.7.46 Hardware: x86-64 OS: Linux Status: NEW Severity: normal Priority: P2 Component: programs Assignee: wine-bugs@winehq.org Reporter: focht@gmx.net Distribution: ---
Hello folks,
found during investigation of bug 38820 (albeit unrelated).
The PunkBuster service test tool 'pbsvc.exe' writes a failure during test of the services into log files.
--- snip --- $ ls -1sh .wine/drive_c/windows/system32/LogFiles/PunkBuster/ total 12K 4.0K pbsvc.log 4.0K PnkBstrA.log 4.0K PnkBstrB.log --- snip ---
'pbsvc.log':
--- snip --- Starting PunkBuster Service Installer (v0.994) (06/29/15 20:45:01) Windows XP (build 2600, Service Pack 3) 32-bit Checking user is Administrator OK Checking Administrator privileges OK Opening Service Control Manager OK Searching for PnkBstrA None Found - OK Extracting PnkBstrA service OK Verifying service authenticity OK Installing PunkBuster service OK Installed at "C:\windows\system32\PnkBstrA.exe" serviceInstallFile does exist Checking PunkBuster service status STOPPED Starting PunkBuster service OK Adding firewall rule for PnkBstrA OK Adding firewall rule for PnkBstrB OK Installation Finished.
Please click "Next" to test the PunkBuster services.Starting PunkBuster Service Tests (v0.994) (06/29/15 20:45:09) Checking OS Windows XP (build 2600, Service Pack 3) 32-bit Checking PnkBstrA service status RUNNING Checking PnkBstrA Version OK (1041) Extracting "PnkBstrB.exe" to: "C:\users\focht\Application Data\PnkBstrB.exe" OK Checking firewall settings OFF Checking if PnkBstrB is running NOT RUNNING Getting port for PnkBstrA OK (44301) Opening socket for packet send OK Sending version packet to PnkBstrA SENT Receiving version from PnkBstrA OK Received 6 bytes from 127.0.0.1:44301 Response = 7064 (ms) Version = v1041 Getting PnkBstrB install instance NOT FOUND Sending start packet to PnkBstrA SENT Waiting for packet from PnkBstrA OK Received 3 bytes from 127.0.0.1:44301 Response = 11087 (ms) PnkBstrB started. Load SUCCESSFUL. Watching for PnkBstrB instance change (0) CHANGED (1) Getting port for PnkBstrB OK (45301) Sending version packet to PnkBstrB SENT Receiving version from PnkBstrB OK Received 5 bytes from 127.0.0.1:45301 Response = 1 (ms) Version = 2333 Checking PnkBstrK driver status NOT FOUND Extracting new PnkBstrK to: "C:\users\focht\Application Data\PnkBstrK.sys" OK Sending load packet to PnkBstrB SENT Checking PnkBstrK driver status NOT FOUND Manually stopping PnkBstrB FAILED - no handle Removing test PnkBstrB file OK PnkBstrA.log: [06.29.2015 20:45:06] PnkBstrA v1041 Service Started Successfully. This service is a component of the PunkBuster Anti-Cheat system. Visit http://www.evenbalance.com for more information. [06.29.2015 20:45:22] Attempting unload of pnkbstrb.
PnkBstrB.log: [06.29.2015 20:45:19] PnkBstrB v2.333 (BF4) Service Started Successfully. This service is a component of the PunkBuster Anti-Cheat system. Visit http://www.evenbalance.com for more information. [06.29.2015 20:45:20] Attempting Component Load [PnkBstrK][drivers][PnkBstrK.sys] [06.29.2015 20:45:21] Loaded and Started PnkBstrK [06.29.2015 20:45:21] WARNING: CRITICAL ERROR: Failed to Register Service (ffab) [06.29.2015 20:45:22] PnkBstrB v2.333 (BF4) Service Attempting Unload (ffab). This service is a component of the PunkBuster Anti-Cheat system. Visit http://www.evenbalance.com for more information. --- snip ---
Relevant part of trace log.
The main area of interest is how 'PnkBstrB' and 'PnkBstrK' services interact.
'PnkBstrA' service -> 'PnkBstrB' service -> 'PnkBstrK' kernel driver service.
--- snip --- ... 0009:trace:process:__wine_kernel_init starting process name=L"Z:\home\focht\Downloads\pbsvc.exe" argv[0]=L"Z:\home\focht\Downloads\pbsvc.exe" ... 0026:trace:service:service_handle_start L"PnkBstrA" argsize 10 ... 0027:Starting thread proc 0x7ea8ded4 (arg=0x13bfc0) 0027:trace:service:service_thread 0x13bfc0 0027:Call advapi32.RegisterServiceCtrlHandlerA(0040d830 "PnkBstrA",00401782) ret=00401993 ... 0027:Call advapi32.CreateServiceA(0013da80,0040d2f4 "PnkBstrB",0040d2f4 "PnkBstrB",000f01ff,00000010,00000002,00000001,00410c00 "C:\windows\system32\PnkBstrB.exe",00000000,00000000,00000000,00000000,00000000) ret=004014cb ... 0027:Ret advapi32.CreateServiceA() retval=0013ef60 ret=004014cb ... 0016:Call KERNEL32.CreateProcessW(00000000,0011a460 L"C:\windows\system32\PnkBstrB.exe",00000000,00000000,00000000,00000400,00540000,00000000,0084e4a4,0084e4e8) ret=7ed5756f ... 0016:trace:process:create_process_impl starting L"C:\windows\system32\PnkBstrB.exe" as Win32 binary (0x400000-0x446000, arch 014c) ... 0034:Call KERNEL32.__wine_kernel_init() ret=7bc69749 ... 0016:trace:process:create_process_impl started process pid 0033 tid 0034 0016:Ret KERNEL32.CreateProcessW() retval=00000001 ret=7ed5756f ... 0034:Call advapi32.StartServiceCtrlDispatcherA(0033fd44) ret=00417033 ... 0034:trace:service:service_run_main_thread Starting 1 services running as process 51 ... 0038:trace:service:service_control_dispatcher got request 1 for service L"PnkBstrB" ... 0039:trace:service:service_thread 0x13bf08 ... 0039:Call advapi32.SetServiceStatus(0013d208,0042a4e0) ret=00441731 0039:trace:service:SetServiceStatus 0x13d208 30 4 5 0 0 0 0 ... 0016:trace:service:service_wait_for_startup Service started successfully ... 0027:Ret advapi32.StartServiceA() retval=00000001 ret=00401524 ... 0039:trace:service:SERV_OpenServiceW returning (nil) ... 0039:Call KERNEL32.CreateFileA(004275b9 "C:\users\focht\Application Data\PnkBstrK.sys",c0000000,00000003,0075d850,00000003,00000080,00000000) ret=00420a9b ... 0039:Call wintrust.WinVerifyTrust(00000000,0075d174,0075d138) ret=00417317 ... 0039:Ret wintrust.WinVerifyTrust() retval=00000000 ret=00417317 ... 0039:Call crypt32.CryptQueryObject(00000001,0042d3f0,00000400,00000002,00000000,0075d290,0075d28c,0075d294,0075d2d0,0075d2c8,00000000) ret=0041791e 0039:Call KERNEL32.CreateFileW(0042d3f0 L"C:\users\focht\Application Data\PnkBstrK.sys",80000000,00000001,00000000,00000003,00000080,00000000) ret=7e5db1ec 0039:Ret KERNEL32.CreateFileW() retval=00000060 ret=7e5db1ec ... 0039:Call KERNEL32.CopyFileA(004275b9 "C:\users\focht\Application Data\PnkBstrK.sys",00426600 "C:\windows\system32\drivers\PnkBstrK.sys",00000000) ret=00408184 0039:Ret KERNEL32.CopyFileA() retval=00000001 ret=00408184 ... 0039:Call advapi32.CreateServiceA(0013d9b8,0075d980 "PnkBstrK",0075d980 "PnkBstrK",000f01ff,00000001,00000003,00000001,00426600 "C:\windows\system32\drivers\PnkBstrK.sys",00000000,00000000,00000000,00000000,00000000) ret=0040829e ... 0016:trace:service:create_serviceW (L"PnkBstrK", L"PnkBstrK", 0xf01ff, L"C:\windows\system32\drivers\PnkBstrK.sys") ... 0039:Call advapi32.OpenServiceA(0013d9b8,0075d980 "PnkBstrK",000f01ff) ret=004082ca ... 0037:trace:service:svcctl_StartServiceW (0x11aaa8, 0, (nil)) ... 0037:Call KERNEL32.CreateProcessW(00000000,0011ac88 L"C:\windows\system32\winedevice.exe PnkBstrK",00000000,00000000,00000000,00000400,00540000,00000000,00c4e4a4,00c4e4e8) ret=7ed5756f ... 0037:trace:process:create_process_impl starting L"C:\windows\system32\winedevice.exe" as Win32 binary (0x10000000-0x10003000, arch 014c, fakedll) ... 003d:Call KERNEL32.__wine_kernel_init() ret=7bc69749 ... 0037:trace:process:create_process_impl started process pid 003c tid 003d 0037:Ret KERNEL32.CreateProcessW() retval=00000001 ret=7ed5756f ... 003d:Call advapi32.StartServiceCtrlDispatcherW(0033fdd8) ret=7effced6 ... 003d:trace:service:service_run_main_thread Starting 1 services running as process 60 ... 0040:trace:service:service_control_dispatcher got request 1 for service L"PnkBstrK" ... 0041:Call advapi32.SetServiceStatus(0011aab0,0053e958) ret=7effcd1d 0041:trace:service:SetServiceStatus 0x11aab0 30 2 0 0 0 0 2710 ... 0037:trace:service:service_wait_for_startup Service state changed to SERVICE_START_PENDING ... 0039:Ret advapi32.StartServiceA() retval=00000001 ret=00408304 ... 0039:Call advapi32.CloseServiceHandle(001421f0) ret=0040834e ... 0039:Call advapi32.CloseServiceHandle(0013d9b8) ret=00408353 ... 0039:Ret advapi32.CloseServiceHandle() retval=00000001 ret=00408353 0039:Call KERNEL32.CreateFileA(004223f8 "\\.\pnkbstrk_link",c0000000,00000001,00000000,00000003,00000000,00000000) ret=0040aa02 0039:Ret KERNEL32.CreateFileA() retval=ffffffff ret=0040aa02 ... 0041:trace:loaddll:load_native_dll Loaded L"C:\windows\system32\drivers\PnkBstrK.sys" at 0x10000000: native ... 0041:Call driver init 0x100033e0 (obj=0x7efff4a0,str=L"\Registry\Machine\System\CurrentControlSet\Services\PnkBstrK") ... 0041:Call ntoskrnl.exe.IoCreateDevice(7efff4a0,00000000,0053e61c,00009c40,00000000,00000000,0053e618) ret=1000344e 0041:trace:ntoskrnl:IoCreateDevice (0x7efff4a0, 0, L"\Device\pnkbstrk", 40000, 0, 0, 0x53e618) ... 0041:Call ntoskrnl.exe.IoCreateSymbolicLink(1000a590,0053e61c) ret=10003476 0041:trace:ntoskrnl:IoCreateSymbolicLink L"\DosDevices\pnkbstrk_link" -> L"\Device\pnkbstrk" 0041:Call ntdll.NtCreateSymbolicLinkObject(0053e5a4,000f0001,0053e58c,0053e61c) ret=7eccf0a0 0041:Ret ntdll.NtCreateSymbolicLinkObject() retval=00000000 ret=7eccf0a0 0041:Ret ntoskrnl.exe.IoCreateSymbolicLink() retval=00000000 ret=10003476 0041:Ret driver init 0x100033e0 (obj=0x7efff4a0,str=L"\Registry\Machine\System\CurrentControlSet\Services\PnkBstrK") retval=00000000 0041:Call advapi32.SetServiceStatus(0011aab0,0053e958) ret=7effcd50 0041:trace:service:SetServiceStatus 0x11aab0 30 4 5 0 0 0 2710 ... --- snip ---
'PnkBstrK' is extracted by the service maintenance app into a temp directory.
'PnkBstrB' service verifies the digital signature of the driver and requests creation of the actual kernel service upon success.
There is a small time frame between service start call returning (state 'SERVICE_START_PENDING') and the driver service entry point being fully executed (state 'SERVICE_RUNNING') which causes the harm here.
Immediately after the return from call to 'StartServiceA', 'PnkBstrB' service tries to open '\DosDevices\pnkbstrk_link' which fails because the device symlink is created in the driver entry point which is executing asynchronously.
MSDN: https://msdn.microsoft.com/en-us/library/windows/desktop/ms686321%28v=vs.85%...
The 'remarks' section gives the hint:
--- quote --- When a driver service is started, the StartService function does not return until the device driver has finished initializing. --- quote ---
Wine must follow this requirement.
$ sha1sum pbsvc.exe 06f372448af09dc1156d6710945936e028f2152a pbsvc.exe
$ du -sh pbsvc.exe 1.7M pbsvc.exe
$ wine --version wine-1.7.46-43-g9353a36
Regards
https://bugs.winehq.org/show_bug.cgi?id=38836
Anastasius Focht focht@gmx.net changed:
What |Removed |Added ---------------------------------------------------------------------------- Keywords| |download URL| |http://www.evenbalance.com/ | |downloads/pbsvc/pbsvc.exe CC| |o.dierick@piezo-forte.be
https://bugs.winehq.org/show_bug.cgi?id=38836
mrdeathjr28@yahoo.es changed:
What |Removed |Added ---------------------------------------------------------------------------- CC| |mrdeathjr28@yahoo.es
https://bugs.winehq.org/show_bug.cgi?id=38836
Anastasius Focht focht@gmx.net changed:
What |Removed |Added ---------------------------------------------------------------------------- CC| |00cpxxx@gmail.com
--- Comment #1 from Anastasius Focht focht@gmx.net --- *** Bug 41114 has been marked as a duplicate of this bug. ***
https://bugs.winehq.org/show_bug.cgi?id=38836
Anastasius Focht focht@gmx.net changed:
What |Removed |Added ---------------------------------------------------------------------------- Summary|PunkBuster 'PnkBstrB' |SCM 'StartService' must |service exits with failure |wait for driver service |('StartService' must wait |entry point execution |for driver service entry |before return (PunkBuster |point execution before |'PnkBstrB' service exits |return) |with failure, CPU-Z | |randomly fails to load its | |driver)
--- Comment #2 from Anastasius Focht focht@gmx.net --- Hello folks,
refining summary to collect more duplicates here. Obviously still present, see addition of bug 41114
$ wine --version wine-2.12
Regards
https://bugs.winehq.org/show_bug.cgi?id=38836
Jack Coulter jscinoz@jscinoz.so changed:
What |Removed |Added ---------------------------------------------------------------------------- CC| |jscinoz@jscinoz.so
https://bugs.winehq.org/show_bug.cgi?id=38836
Anastasius Focht focht@gmx.net changed:
What |Removed |Added ---------------------------------------------------------------------------- Summary|SCM 'StartService' must |SCM 'StartService' must |wait for driver service |wait for driver service |entry point execution |entry point execution |before return (PunkBuster |before return (PunkBuster |'PnkBstrB' service exits |'PnkBstrB' service failure, |with failure, CPU-Z |CPU-Z randomly fails to |randomly fails to load its |load its driver, BattlEye |driver) |'BEDaisy' kernel service)
--- Comment #3 from Anastasius Focht focht@gmx.net --- Hello folks,
revisiting, still present.
Encountered this problem during investigation of BattlEye service failures (bug 41670).
I have a number of patches (hacks) to make the 'BEDaisy' kernel driver service somewhat functional that it survives the driver initialization (entry point). The BattlEye helper service 'BEService' starts 'BEDaisy' kernel driver service.
--- snip --- ... 0009:Call KERNEL32.CreateProcessW(00000000,0033de64 L""C:\users\focht\Local Settings\Application Data\Tibia\packages\Tibia\bin\client_launcher.exe" 3",00000000,00000000,00000000,00000410,00000000,00000000,0033d940,0033d930) ret=7e7e9506 ... 0009:trace:process:create_process_impl started process pid 003a tid 003b 0009:Ret KERNEL32.CreateProcessW() retval=00000001 ret=7e7e9506 ... 003b:Call advapi32.CreateServiceW(00133f30,00422d4c L"BEService",00423154 L"BattlEye Service",00060010,00000010,00000003,00000001,0033f3a0 L""C:\Program Files\Common Files\BattlEye\BEService.exe"",00000000,00000000,00000000,00000000,00000000) ret=0046e55c ... 0037:Call KERNEL32.CreateProcessW(00000000,0011cdc0 L""C:\Program Files\Common Files\BattlEye\BEService.exe"",00000000,00000000,00000000,00000400,00450000,00000000,00ddf8ec,00ddf930) ret=7ed5dc0b ... 003e:Starting process L"C:\Program Files\Common Files\BattlEye\BEService.exe" (entryproc=0x4eb460) ... 003e:Call advapi32.StartServiceCtrlDispatcherA(0033fe58) ret=00447aa9 ... 003b:Ret advapi32.StartServiceW() retval=00000001 ret=0043482a 0041:Call KERNEL32.CreateNamedPipeA(00758228 "\\.\pipe\BattlEye",40040003,00000006,00000002,00000400,00000400,00000000,00000000) ret=00473131 0041:Ret KERNEL32.CreateNamedPipeA() retval=00000054 ret=00473131 0041:Call KERNEL32.CreateNamedPipeA(00758228 "\\.\pipe\BattlEye",40040003,00000006,00000002,00000400,00000400,00000000,00000000) ret=004be6f2 0041:Ret KERNEL32.CreateNamedPipeA() retval=00000058 ret=004be6f2 ... 0041:Call advapi32.CreateServiceW(00135e68,007581d4 L"BEDaisy",007581d4 L"BEDaisy",00010034,00000001,00000003,00000001,0075d820 L"C:\Program Files\Common Files\BattlEye\BEDaisy.sys",00000000,00000000,00000000,00000000,00000000) ret=004b243a ... 0045:trace:winedevice:create_driver starting driver L"BEDaisy" 0045:Call advapi32.SetServiceStatus(0011b788,0043fcf4) ret=7effb41b ... 0045:Ret advapi32.SetServiceStatus() retval=00000001 ret=7effb41b ... 0045:Call KERNEL32.TrySubmitThreadpoolCallback(7effb724,0011b808,0043fd34) ret=7effbb3f 0048:Call PE DLL (proc=0xf739521c,module=0xf7350000 L"rpcrt4.dll",reason=THREAD_ATTACH,res=(nil)) 0048:Ret PE DLL (proc=0xf739521c,module=0xf7350000 L"rpcrt4.dll",reason=THREAD_ATTACH,res=(nil)) retval=1 0045:Ret KERNEL32.TrySubmitThreadpoolCallback() retval=00000001 ret=7effbb3f 0048:Starting thread proc 0x7bca027b (arg=0x11cad8) ... 0048:trace:winedevice:load_driver loading driver L"C:\Program Files\Common Files\BattlEye\BEDaisy.sys" ... 0048:Call KERNEL32.LoadLibraryW(0011cd38 L"C:\Program Files\Common Files\BattlEye\BEDaisy.sys") ret=7effaa20 ... 0041:Ret advapi32.StartServiceA() retval=00000001 ret=004316a4 0041:Call KERNEL32.CreateFileA(007581a0 "\\.\BattlEye",c0000000,00000000,00000000,00000003,00000000,00000000) ret=00408ea6 0048:trace:module:map_image mapped PE file at 0x780000-0x80f000 0048:trace:module:map_image mapping section .text at 0x781000 off 0 size 0 virt 2a8a flags 68000020 0048:trace:module:map_image mapping section .rdata at 0x784000 off 0 size 0 virt 8fc flags 48000040 0048:trace:module:map_image mapping section .data at 0x785000 off 0 size 0 virt 1238 flags c8000040 0041:Ret KERNEL32.CreateFileA() retval=ffffffff ret=00408ea6 0048:trace:module:map_image mapping section INIT at 0x787000 off 0 size 0 virt 7e6 flags 60000020 0048:trace:module:map_image mapping section .be0 at 0x788000 off 0 size 0 virt 38409 flags e8000060 0048:trace:module:map_image mapping section .be1 at 0x7c1000 off 400 size 4c400 virt 4c338 flags e0000060 ... 0041:Call advapi32.CloseServiceHandle(00135e68) ret=004a786c ... 0041:Call advapi32.QueryServiceStatus(00135f08,00757934) ret=004b1cad ... 0041:Ret advapi32.QueryServiceStatus() retval=00000001 ret=004b1cad ... 0041:Ret advapi32.CloseServiceHandle() retval=00000001 ret=004818c7 ... 0048:trace:winedevice:load_driver_module L"C:\Program Files\Common Files\BattlEye\BEDaisy.sys": relocating from 0x400000 to 0x780000 ... 0041:Call KERNEL32.DeleteFileW(0075d820 L"C:\Program Files\Common Files\BattlEye\BEDaisy.sys") ret=0040dcf6 ... 0048:Call driver init 0x7fdf6e (obj=0x11cb58,str=L"\Registry\Machine\System\CurrentControlSet\Services\BEDaisy") ... 0048:Ret driver init 0x7fdf6e (obj=0x11cb58,str=L"\Registry\Machine\System\CurrentControlSet\Services\BEDaisy") retval=00000000 ... 002e:Call KERNEL32.GetStringTypeW(00000001,00151968 L"21:19:03: Successfully installed BattlEye Service.\r\n21:19:03: Failed to initialize BattlEye Service: Driver Init Error (2).\r\n",00000001,005bf45a) ret=7e1f4505 0 ... 0048:trace:ntoskrnl:IoCreateDevice (0x11cb58, 0, L"\Device\BattlEye", 34, 0, 0, 0x65f1e8) ... 0048:trace:ntoskrnl:IoCreateSymbolicLink L"\DosDevices\BattlEye" -> L"\Device ... 0048:Ret ntoskrnl.exe.IoCreateDriver() retval=00000000 ret=7effb7c8 ... --- snip ---
The app/service expects the kernel driver entry point executed *before* 'StartService' returns. Also see 'CreateFile' calls from the client to check if driver symbolic link exists in the log snippet. I've already documented this behaviour in my initial analysis here.
Source:
https://source.winehq.org/git/wine.git/blob/354fa7eb7921c3317e7943c18871febe...
--- snip --- 410 /* load a driver and notify services.exe about the status change */ 411 static NTSTATUS create_driver( const WCHAR *driver_name ) 412 { ... 437 TRACE( "starting driver %s\n", wine_dbgstr_w(driver_name) ); 438 set_service_status( driver->handle, SERVICE_START_PENDING, 0 ); 439 440 memset( &environment, 0, sizeof(environment) ); 441 environment.Version = 1; 442 environment.CleanupGroup = cleanup_group; 443 444 /* don't block the service control handler */ 445 if (!TrySubmitThreadpoolCallback( async_create_driver, driver, &environment )) 446 async_create_driver( NULL, driver ); 447 448 return STATUS_SUCCESS; 449 } --- snip ---
The code was reworked here for async load/unload: https://source.winehq.org/git/wine.git/commitdiff/440482d2ef31333d1bc3ce15b0...
$ sha1sum Tibia_Setup.exe 50951008ccc402cc32407bfc56a88da873e3e9bd Tibia_Setup.exe
$ du -sh Tibia_Setup.exe 5.2M Tibia_Setup.exe
$ wine --version wine-3.1-193-g354fa7eb79
Regards
https://bugs.winehq.org/show_bug.cgi?id=38836
Lele random-system@libero.it changed:
What |Removed |Added ---------------------------------------------------------------------------- CC| |random-system@libero.it
https://bugs.winehq.org/show_bug.cgi?id=38836
tokktokk fdsfgs@krutt.org changed:
What |Removed |Added ---------------------------------------------------------------------------- CC| |fdsfgs@krutt.org
https://bugs.winehq.org/show_bug.cgi?id=38836
mirh mirh@protonmail.ch changed:
What |Removed |Added ---------------------------------------------------------------------------- CC| |mirh@protonmail.ch
https://bugs.winehq.org/show_bug.cgi?id=38836
Alistair Leslie-Hughes leslie_alistair@hotmail.com changed:
What |Removed |Added ---------------------------------------------------------------------------- Blocks| |44811
https://bugs.winehq.org/show_bug.cgi?id=38836
Alistair Leslie-Hughes leslie_alistair@hotmail.com changed:
What |Removed |Added ---------------------------------------------------------------------------- Fixed by SHA1| |57268241f745686e86bae41f442 | |14bd05f98c723 Status|NEW |RESOLVED Resolution|--- |FIXED CC| |leslie_alistair@hotmail.com
--- Comment #4 from Alistair Leslie-Hughes leslie_alistair@hotmail.com --- Fixed by https://source.winehq.org/git/wine.git/?a=commit;h=57268241f745686e86bae41f4...
https://bugs.winehq.org/show_bug.cgi?id=38836
Alexandre Julliard julliard@winehq.org changed:
What |Removed |Added ---------------------------------------------------------------------------- Status|RESOLVED |CLOSED
--- Comment #5 from Alexandre Julliard julliard@winehq.org --- Closing bugs fixed in 3.5.
https://bugs.winehq.org/show_bug.cgi?id=38836
Michael Stefaniuc mstefani@winehq.org changed:
What |Removed |Added ---------------------------------------------------------------------------- Target Milestone|--- |3.0.x
https://bugs.winehq.org/show_bug.cgi?id=38836
Michael Stefaniuc mstefani@winehq.org changed:
What |Removed |Added ---------------------------------------------------------------------------- Target Milestone|3.0.x |---
--- Comment #6 from Michael Stefaniuc mstefani@winehq.org --- Removing the 3.0.x milestone from bugs included in 3.0.2.
https://bugs.winehq.org/show_bug.cgi?id=38836
Anastasius Focht focht@gmx.net changed:
What |Removed |Added ---------------------------------------------------------------------------- URL|http://www.evenbalance.com/ |https://web.archive.org/web |downloads/pbsvc/pbsvc.exe |/20150619153445/http://www. | |evenbalance.com/downloads/p | |bsvc/pbsvc.exe Keywords| |obfuscation