http://bugs.winehq.org/show_bug.cgi?id=28994
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@winehq.org ReportedBy: focht@gmx.net Classification: Unclassified
Hello,
created a new bug from bug 19040 to track a regression.
AOL 9.0 Installer download:
http://download.newaol.com/clients/bush/waol/4327.271.1/install/setup.exe
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) ret=091c580a 0033:trace:virtual:NtProtectVirtualMemory 0xffffffff 0x91bba0d 00000787 00000008 0033:Ret KERNEL32.VirtualProtect() retval=00000000 ret=091c580a 0033:trace:seh:raise_exception code=c0000005 flags=0 addr=0x91c556b ip=091c556b tid=0033 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 flags=0 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 --- Wine-dbg>bt Backtrace: =>0 0x7bc90243 get_vprot_flags+0x3(protect=0x8, vprot=0x33f558) [/home/focht/projects/wine/wine-git/dlls/ntdll/virtual.c:560] in ntdll (0x0033f454) 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 (0x0033f584) 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 (0x0033f5c4) 3 0x7b87ce0e VirtualProtect+0x39(addr=0x91bba0d, size=0x787, new_prot=0x8, old_prot=0x33f648) [/home/focht/projects/wine/wine-git/dlls/kernel32/virtual.c:217] in kernel32 (0x0033f5f4) 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) Wine-dbg>l 2091 if (new_vprot & VPROT_WRITECOPY) return STATUS_INVALID_PAGE_PROTECTION; --- 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:
http://source.winehq.org/git/wine.git/commitdiff/33255ee6ecf48725e8e061313da...
Reverting lets the installer successfully finish.
$ sha1sum setup.exe f7bdfef0f79dab31be820d6f51e5a7e7d26b2eef setup.exe
$ wine --version wine-1.3.32
Regards