[Bug 28994] New: AOL 9.0VR: wmp9 sub-installer crashes while registering drmclien.dll

wine-bugs at winehq.org wine-bugs at winehq.org
Sat Nov 5 04:30:17 CDT 2011


             Bug #: 28994
           Summary: AOL 9.0VR: wmp9 sub-installer crashes while
                    registering drmclien.dll
           Product: Wine
           Version: 1.3.32
          Platform: x86
        OS/Version: Linux
            Status: NEW
          Severity: normal
          Priority: P2
         Component: ntdll
        AssignedTo: wine-bugs at winehq.org
        ReportedBy: focht at gmx.net
    Classification: Unclassified


created a new bug from bug 19040 to track a regression.

AOL 9.0 Installer download:


There is a crash near the end when running Windows Media Player 9.0 setup.
Can be reproduced manually by running:

~/.wine/drive_c/windows/system32$ wine regsvr32.exe drmclien.dll

+tid,+seh,+relay gives:

--- snip ---
0033:Call KERNEL32.VirtualProtect(091bba0d,00000787,00000008,0032f648)
0033:trace:virtual:NtProtectVirtualMemory 0xffffffff 0x91bba0d 00000787
0033:Ret  KERNEL32.VirtualProtect() retval=00000000 ret=091c580a
0033:trace:seh:raise_exception code=c0000005 flags=0 addr=0x91c556b ip=091c556b
0033:trace:seh:raise_exception  info[0]=00000001
0033:trace:seh:raise_exception  info[1]=091bba6d
0033:trace:seh:raise_exception  eax=091bba6d ebx=091bc193 ecx=091bba68
edx=00000089 esi=0032fe18 edi=00000000
0033:trace:seh:raise_exception  ebp=0032f5a8 esp=0032f59c cs=0073 ds=007b
es=007b fs=0033 gs=003b flags=00210202
0033:trace:seh:call_stack_handlers calling handler at 0x7bc98075 code=c0000005
0033:Call KERNEL32.UnhandledExceptionFilter(0032f074) ret=7bc980af
wine: Unhandled page fault on write access to 0x091bba6d at address 0x91c556b
(thread 0033), starting debugger... 
--- snip ---

Winedbg session:

--- snip ---
=>0 0x7bc90243 get_vprot_flags+0x3(protect=0x8, vprot=0x33f558)
[/home/focht/projects/wine/wine-git/dlls/ntdll/virtual.c:560] in ntdll
  1 0x7bc9489e NtProtectVirtualMemory+0x181(process=0xffffffff,
addr_ptr=0x33f5d0, size_ptr=0x33f5d4, new_prot=0x8, old_prot=0x33f648)
[/home/focht/projects/wine/wine-git/dlls/ntdll/virtual.c:2090] in ntdll
  2 0x7b87ce45 VirtualProtectEx+0x2c(process=0xffffffff, addr=0x91bba0d,
size=0x787, new_prot=0x8, old_prot=0x33f648)
[/home/focht/projects/wine/wine-git/dlls/kernel32/virtual.c:241] in kernel32
  3 0x7b87ce0e VirtualProtect+0x39(addr=0x91bba0d, size=0x787, new_prot=0x8,
[/home/focht/projects/wine/wine-git/dlls/kernel32/virtual.c:217] in kernel32
  4 0x091c580a in drmclien (+0x25809) (0x0033f610)
  5 0x091c36a4 in drmclien (+0x236a3) (0x0033f64c)
  6 0x091bba08 in drmclien (+0x1ba07) (0x0033fd48)
  7 0x091b2647 in drmclien (+0x12646) (0x0033fd58)
  8 0x7effc7c1 RegisterDll+0x49(strDll="drmclien.dll")
[/home/focht/projects/wine/wine-git/programs/regsvr32/regsvr32.c:118] in
regsvr32 (0x0033fd88)
Wine-dbg>info locals
0x7bc948af NtProtectVirtualMemory+0x193: (0033f584)
    HANDLE process=0xffffffff (parameterEBP)
    PVOID* addr_ptr=0x33f5d0 (parameterEBP)
    SIZE_T* size_ptr=0x33f5d4 (parameterEBP)
    ULONG new_prot=0x8 (parameterEBP)
    ULONG* old_prot=0x33f648 (parameterEBP)
    struct file_view* view=0x7bc94720 (localEBP)
    sigset_t sigset={__val={0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0}} (localEBP)
    NTSTATUS status=0 (localEBP)
    char* base="PΦ   ]┬" (localEBP)
    BYTE vprot=0 (localEBP)
    unsigned int new_vprot=0x9 (localEBP)
    SIZE_T size=0x2000 (localEBP)
    LPVOID addr=0x91bba0d (localEBP)
2091        if (new_vprot & VPROT_WRITECOPY) return
--- snip ---

PE mappings for address in .text

--- snip ---
Memory map
Address    Size     Section  Contains              Type Access

091A0000   00001000          PE header             Img  R
091A1000   00044000 .text    Code,imports,exports  Img  R E
091E5000   00003000 .data    Data                  Img  RW  CopyOnWr
091E8000   00001000 .rsrc    Resources             Img  R
091E9000   00004000 .reloc   Relocations           Img  R

--- snip ---

Sequence: PAGE_EXECUTE_READ (orig) -> PAGE_WRITECOPY (to modify data in
specific .text region) -> PAGE_EXECUTE_READ (restore)

The problem is this commit:


Reverting lets the installer successfully finish.

$ sha1sum setup.exe 
f7bdfef0f79dab31be820d6f51e5a7e7d26b2eef  setup.exe

$ wine --version


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