[Bug 35432] Wine builtin 'services.exe' crashes during prefix startup (service timeout, APC corrupts stack)

wine-bugs at winehq.org wine-bugs at winehq.org
Sun Nov 9 16:26:18 CST 2014


https://bugs.winehq.org/show_bug.cgi?id=35432

Anastasius Focht <focht at gmx.net> changed:

           What    |Removed                     |Added
----------------------------------------------------------------------------
             Status|UNCONFIRMED                 |NEW
                 CC|                            |focht at gmx.net
            Version|1.4-rc3                     |1.4.1
            Summary|config wine                 |Wine builtin 'services.exe'
                   |                            |crashes during prefix
                   |                            |startup (service timeout,
                   |                            |APC corrupts stack)
     Ever confirmed|0                           |1

--- Comment #3 from Anastasius Focht <focht at gmx.net> ---
Hello folks,

crashes in Wine builtins should be taken seriously - even with old Wine
versions :)

With little information given in the bug, following deduction...

Faulting thread 0xf -> service program main thread (#1)

'service_start+0x29f()' is probably inlined 'service_start_process()' and leafs
code (function is static).

http://source.winehq.org/git/wine.git/blob/154aef98d88f16acbcc029d298cc21227b87d305:/programs/services/services.c#l800

The value 0x8000000a in EAX translates to 'STATUS_HANDLES_CLOSED'.
Wineserver 'free_async_queue' for example sets this code.

Speculation: a service/control pipe timeout causes I/O cancellation/teardown
which queues APC.
It's likely that the queued APC is executed on the main thread (in alertable
wait).
The APC is somehow messing up the stack, causing the crash.

--- snip ---
Unhandled exception: page fault on execute access to 0x8000000a in 32-bit code
(0x8000000a).
Register dump:
 CS:0073 SS:007b DS:007b ES:007b FS:0033 GS:003b
 EIP:8000000a ESP:0033fce4 EBP:0033fcf8 EFLAGS:00010246(  R- --  I  Z- -P- )
 EAX:00000001 EBX:7ed66000 ECX:00000000 EDX:00000000
 ESI:bfd99e24 EDI:00000000
Stack dump:
0x0033fce4:  00000000 00000000 000000b4 7ed66000
0x0033fcf4:  7ed66000 0033fd58 7ed53f70 00110dc8
0x0033fd04:  000000c4 0033fdb8 00000001 00000100
0x0033fd14:  00000100 00002710 00000000 00110944
0x0033fd24:  00000080 000000c4 0000041d 00113330
0x0033fd34:  7ed66000 0033fd58 7ed530e3 00110cac
Backtrace:
=>0 0x8000000a (0x0033fcf8)
  1 0x7ed53f70 service_start+0x29f() in services (0x0033fd58)
  2 0x7ed524e0 in services (+0x124df) (0x0033fdc8)
  3 0x7ed542af main+0xb0() in services (0x0033fe08)
...
  17 0x7bf011c6 main+0x13d() in <wine-loader> (0xbfd9b228)
  18 0xb7462905 __libc_start_main+0xf4(main=0x7bf01088, argc=0x2,
ubp_av=0xbfd9b2c4, init=0x7bf011f0, fini=0x7bf01260, rtld_fini=0xb77895f0,
stack_end=0xbfd9b2bc) [/build/buildd/eglibc-2.17/csu/libc-start.c:260] in
libc.so.6 (0x00000000)
0x8000000a: addb    %al,0x0(%eax)
Modules:
Module    Address            Debug info    Name (25 modules)
ELF    7b800000-7ba43000    Dwarf           kernel32<elf>
  \-PE    7b810000-7ba43000    \               kernel32
...
ELF    7ed3a000-7ed67000    Dwarf           services<elf>
  \-PE    7ed40000-7ed67000    \               services
...
Threads:
process  tid      prio (all id:s are in hex)
...
0000000e (D) C:\windows\system32\services.exe
    0000001e    0
    0000001d    0
    00000010    0
    0000000f    0 <==
--- snip ---

I found a similar case here: https://forum.winehq.org/viewtopic.php?f=8&t=19255

--- snip ---
err:service:service_send_start_message service L"DigiRefresh" failed to start
wine: Unhandled page fault on execute access to 0x8000000a at address
0x8000000a (thread 000f), starting debugger...
--- snip ---

Regards

-- 
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