https://bugs.winehq.org/show_bug.cgi?id=35367
Bug ID: 35367
Summary: Cyberlink Powerdirector 8 crashes during media scan
(Wine ole32 code must take implicit MTA into account)
Product: Wine
Version: 1.7.10
Hardware: x86
OS: Linux
Status: NEW
Severity: normal
Priority: P2
Component: ole32
Assignee: wine-bugs(a)winehq.org
Reporter: focht(a)gmx.net
Classification: Unclassified
Hello folks,
Prerequisite: 'winetricks -q mfc42'
Upon startup the app shows a registration dialog with some options:
* "Buy Now"
* "Activate"
* "Try Now"
After selecting "Try Now" the app continues loading and starts importing some
media files.
"Activation" feature also works (tested with some code found here and there).
There is a crash (heap corruption) in libxml2/msxml during media import.
This is a different problem which can be worked around with 'winetricks -q
msxml3'.
This bug is about the COM/OLE part of media import crash.
Relevant part of trace log:
--- snip ---
$ pwd
/home/focht/.wine/drive_c/Program Files/CyberLink/PowerDirector
$ WINEDEBUG=+tid,+seh,+relay,+ole,+variant wine ./PDR8.exe >>log2.txt 2>&1
...
0016:Call shlwapi.PathFileExistsW(0430b2e4 L"C:\\Program
Files\\CyberLink\\PowerDirector\\SampleClips\\ntsc\\Nature.mpg") ret=02cb0bbd
...
0016:Ret shlwapi.PathFileExistsW() retval=00000001 ret=02cb0bbd
0016:Call ole32.CoCreateInstance(02ce6e68,00000000,00000007,02ce6e38,0275b5b4)
ret=02cb5171
0016:trace:ole:CoCreateInstance (rclsid={889ca1c3-e115-47e1-88ec-20df644e982a},
pUnkOuter=(nil), dwClsContext=00000007,
riid={38df9356-47c1-40ef-89ce-af1d019b0baa}, ppv=0x275b5b4)
0016:trace:ole:apartment_addref 2e0000cafe: before = 8
0016:trace:ole:apartment_release 2e0000cafe: after = 8
0016:trace:ole:CoGetClassObject CLSID:
{889ca1c3-e115-47e1-88ec-20df644e982a},IID:
{00000001-0000-0000-c000-000000000046}
0016:trace:ole:apartment_addref 2e0000cafe: before = 8
...
0016:warn:ole:CoGetClassObject class {889ca1c3-e115-47e1-88ec-20df644e982a} not
registered as in-proc server
...
0016:warn:ole:CoGetClassObject class {889ca1c3-e115-47e1-88ec-20df644e982a} not
registered in-proc handler
0016:trace:ole:apartment_release 2e0000cafe: after = 8
0016:trace:ole:RPC_GetLocalClassObject
rclsid={889ca1c3-e115-47e1-88ec-20df644e982a},
iid={00000001-0000-0000-c000-000000000046}
0016:trace:ole:RPC_GetLocalClassObject waiting for
L"\\\\.\\pipe\\{889CA1C3-E115-47E1-88EC-20DF644E982A}"
0016:Call KERNEL32.WaitNamedPipeW(0275b228
L"\\\\.\\pipe\\{889CA1C3-E115-47E1-88EC-20DF644E982A}",ffffffff) ret=7e773bc3
0016:Ret KERNEL32.WaitNamedPipeW() retval=00000001 ret=7e773bc3
0016:Call KERNEL32.CreateFileW(0275b228
L"\\\\.\\pipe\\{889CA1C3-E115-47E1-88EC-20DF644E982A}",c0000000,00000000,00000000,00000003,00000000,00000000)
ret=7e773c04
0016:Ret KERNEL32.CreateFileW() retval=00000914 ret=7e773c04
0016:Call KERNEL32.ReadFile(00000914,0275b158,000000c8,0275b220,00000000)
ret=7e773e29
0016:Ret KERNEL32.ReadFile() retval=00000001 ret=7e773e29
0016:trace:ole:RPC_GetLocalClassObject read marshal id from pipe
...
0016:trace:ole:RPC_GetLocalClassObject unmarshalling local server
0016:trace:ole:CoUnmarshalInterface (0x4365a08,
{6d5140c1-7436-11ce-8034-00aa006009fa}, 0x275b13c)
...
0016:trace:ole:get_unmarshaler_from_stream Using standard unmarshaling
0016:Call ntdll.RtlAllocateHeap(00110000,00000000,00000010) ret=7e75bf7e
0016:Ret ntdll.RtlAllocateHeap() retval=043fd2f8 ret=7e75bf7e
0016:trace:ole:StdMarshalImpl_UnmarshalInterface
(...,{6d5140c1-7436-11ce-8034-00aa006009fa},....)
0016:err:ole:StdMarshalImpl_UnmarshalInterface Apartment not initialized
0016:err:ole:CoUnmarshalInterface IMarshal::UnmarshalInterface failed,
0x800401f0
...
0016:trace:ole:CoUnmarshalInterface completed with hr 0x800401f0
0016:trace:seh:raise_exception code=c0000005 flags=0 addr=0x7e7740f4
ip=7e7740f4 tid=0016
0016:trace:seh:raise_exception info[0]=00000000
0016:trace:seh:raise_exception info[1]=000003de
0016:trace:seh:raise_exception eax=000003de ebx=7e854000 ecx=0275b100
edx=0275ef8c esi=0275ecc5 edi=0275eb8c
0016:trace:seh:raise_exception ebp=0275b378 esp=0275b100 cs=0023 ds=002b
es=002b fs=0063 gs=006b flags=00210286
--- snip ---
"{889ca1c3-e115-47e1-88ec-20df644e982a}" is registered as out-of-process COM
server:
--- snip ---
CLSID: {889CA1C3-E115-47E1-88EC-20DF644E982A}
LOCAL SERVER: %ROOT%\PROGRA~1\CYBERL~1\SHARED~1\RICHVI~1.EXE
TYPELIB: {D37B5B2C-8D1B-4832-89E4-6FCE903B3A18}
VERSION IND. PROGID: RichVideo.RVInterface
--- snip ---
The problem most likely stems from crappy vendor code. The thread in question
that ought to instantiate the COM object never explicitly initializes its COM
apartment.
>From my experience in 99% of the cases the developers forgot the call to
CoÂInitializeÂEx() on thread entry and the reason why this works for native is
the so called implicit MTA.
Basically another thread in the process called CoÂInitializeÂEx(0,
COINIT_MULTIÂTHREADED), which means that the thread which forgot to call
CoÂInitializeEx() was implicitly placed in the MTA (the app creates a crapload
of threads).
I had to change quite some code to make a proof-of-concept.
There is various code in Wine ole32 that makes use of COM_CurrentApt() which
doesn't take implicit MTA into account.
--- snip ---
# modified: dlls/ole32/compobj.c
# modified: dlls/ole32/marshal.c
# modified: dlls/ole32/rpc.c
--- snip ---
The app/thread was finally able to instantiate the out-of-process COM server
and make COM calls.
Media files were successfully imported and movies/images showed up in some
thumbnail-like view.
$ sha1sum cyberlink2220_vde09070801.exe
2fbc508b971332872b68761ea0d56803c5d122bd cyberlink2220_vde09070801.exe
$ du -sh cyberlink2220_vde09070801.exe
236M cyberlink2220_vde09070801.exe
$ wine --version
wine-1.7.10-343-g770d09d
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.
http://bugs.winehq.org/show_bug.cgi?id=33749
Bug #: 33749
Summary: fix for "called from wrong apartment" bug in
ClientRpcChannelBuffer_SendReceive
Product: Wine
Version: 1.6-rc1
Platform: x86-64
OS/Version: Linux
Status: UNCONFIRMED
Severity: major
Priority: P2
Component: ole32
AssignedTo: wine-bugs(a)winehq.org
ReportedBy: rosen.diankov(a)gmail.com
Classification: Unclassified
There are cases where the "called from wrong apartment" gets called in
ole32/rpc.c:ClientRpcChannelBuffer_SendReceive and there is no COM apartment
set.
Actually the thread should be using the implicit multithreaded apartment
created from a previous thread's CoÂInitializeEx call
http://blogs.msdn.com/b/oldnewthing/archive/2013/04/19/10412399.aspx
Therefore the fix is really simple, add this check right in the beginning of
ClientRpcChannelBuffer_SendReceive
if( !COM_CurrentApt() ) {
apartment_joinmta();
}
Note that in Windows 7 and beyond, there's a new flag that controls the
implicit MTA behavior called APTTYPEQUALIFIER.
http://msdn.microsoft.com/library/dd542638
Wine should support this for Windows 7 and beyond.
--
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.
https://bugs.winehq.org/show_bug.cgi?id=37639
Bug ID: 37639
Summary: AlphaShadow v1.2 (.NET 4.0 app) crashes on
unimplemented function
vssapi.dll.?CreateVssBackupComponents@@YGJPAPAVIVssBac
kupComponents@@@Z
Product: Wine
Version: 1.7.31
Hardware: x86
OS: Linux
Status: NEW
Severity: normal
Priority: P2
Component: -unknown
Assignee: wine-bugs(a)winehq.org
Reporter: focht(a)gmx.net
Distribution: ---
Hello folks,
continuation of bug 37599
Prerequisite: 'winetricks -q dotnet40'
--- snip ---
$ pwd
/home/focht/Downloads/AlphaVSS-1.2.4000.3/Bin/Release
$ wine ./AlphaShadow.exe
...
AlphaShadow v1.2 - AlphaVSS Volume Shadow Copy Library Sample Client
Copyright c Peter Palotas 2008-2012
...
AlphaShadow query Lists information about shadow copies in the system.
AlphaShadow create Creates a shadow set on the specified volume(s).
AlphaShadow lws List writer status
AlphaShadow lwm List writer metadata
AlphaShadow delete Deletes one or more shadow copies on the system.
AlphaShadow revert Revert a volume to the specified shadow copy.
AlphaShadow expose Exposes a shadow copy locally or as a share.
AlphaShadow import Imports a transportable shadow copy.
AlphaShadow restore Restore based on a previously-generated
Backup Components document
--- snip ---
--- snip ---
$ wine ./AlphaShadow.exe lws
...
fixme:shell:URL_ParseUrl failed to parse L"AlphaVSS.Common"
fixme:shell:URL_ParseUrl failed to parse L"System.Core"
fixme:shell:URL_ParseUrl failed to parse L"System.EnterpriseServices"
AlphaShadow v1.2 - AlphaVSS Volume Shadow Copy Library Sample Client
Copyright c Peter Palotas 2008-2012
fixme:shell:URL_ParseUrl failed to parse L"System"
Final context: 0
fixme:shell:URL_ParseUrl failed to parse L"AlphaVSS.51.x86"
wine: Call from 0x7b83b1d3 to unimplemented function
vssapi.dll.?CreateVssBackupComponents@@YGJPAPAVIVssBackupComponents@@@Z,
aborting
fixme:advapi:RegisterTraceGuidsW (0x9705b2, (nil),
{8e9f5090-2d75-4d03-8a81-e5afbf85daf1}, 1, 0x33cf1c, (null), (null), 0xccf168):
stub
Error: External component has thrown an exception.
--- snip ---
$ sha1sum AlphaVSS-1.2.4000.3.zip
d465732a6a8909bde092d6a8ce3961086a5a57d4 AlphaVSS-1.2.4000.3.zip
$ du -sh AlphaVSS-1.2.4000.3.zip
5.4M AlphaVSS-1.2.4000.3.zip
$ wine --version
wine-1.7.31-154-g871fc4a
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.
http://bugs.winehq.org/show_bug.cgi?id=24688
Summary: RTL and encoding problem with Ihulan
Product: Wine
Version: 1.3.4
Platform: x86
OS/Version: Linux
Status: UNCONFIRMED
Severity: normal
Priority: P2
Component: -unknown
AssignedTo: wine-bugs(a)winehq.org
ReportedBy: sh.yaron(a)gmail.com
Ihulan (www.oniton.com) is a Hebrew greetings apps, there's also an English
version called U.R.Celeb (http://urceleb.oniton.com/).
The Hebrew installation (http://www.oniton.com/uploads/secure/Ihulan453.exe)
has several issues:
1. The text is Gibberish.
2. On the terms of service (2nd page) the text is in Hebrew but selectingthe
mixes its order, also the header (in read) are split in the middle by LRM for
some reason...
3. The window is not RTL although I'm not sure it should be...
This also demonstrates some of the typical problems with Hebrew.
Kind regards,
Yaron Shahrabani
--
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.
https://bugs.winehq.org/show_bug.cgi?id=37370
Bug ID: 37370
Summary: Doom3 CD version installer prompts are different
compared to WinXP
Product: Wine
Version: 1.7.28
Hardware: x86
OS: Linux
Status: NEW
Severity: normal
Priority: P2
Component: msi
Assignee: wine-bugs(a)winehq.org
Reporter: wylda(a)volny.cz
Created attachment 49696
--> https://bugs.winehq.org/attachment.cgi?id=49696
Wine 1.7.28 vs WinXP
This is true nitpick ;) As the attachement show, wine says redundant "Error" in
the message block pop up and also button "Retry" vs. "OK".
If this is considered as crazy nitpicking, there are other problems to which
this bug can be converted to (i won't open new bugs yet until this one fixed
and because possible duplicates may exists). "Remember list" unrelated to this
bug report:
* Cancel does not work under wine. WinXP asks you "Are you sure?" Yes/No. Yes
button=exit.
* Progress bar is always 100%. WinXP moves as the CD are changed.
* When Setup.exe is run under Wow64, it immediately exits with some error
code. Under 64bit Win8.1 Setup normally asks you for the serial number as
usual.
* Missing background images during the installation
* Extra minimize button, which is not present on attached WinXP screenshot,
makes wine dead. When clicked, popup window is hidden and you can't restore it
back. As it is fullscreen, you can't click anywhere, nor Alt-Tab to get it
back. Killing wine is a workaround.
--
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.
http://bugs.winehq.org/show_bug.cgi?id=28795
Bug #: 28795
Summary: ExeInfoPE: PE protection schemes that abuse %gs won't
run (breaks glibc TLS selector)
Product: Wine
Version: 1.3.30
Platform: x86
OS/Version: Linux
Status: NEW
Severity: normal
Priority: P2
Component: -unknown
AssignedTo: wine-bugs(a)winehq.org
ReportedBy: focht(a)gmx.net
Classification: Unclassified
Hello,
newer versions of "ExeInfoPE" (>0.0.2.3) which coin their own PE protection
scheme don't run anymore.
There is still bug 26701 though the app crashes now earlier.
With tracing enabled:
--- snip ---
...
0024:Call KERNEL32.VirtualProtect(00400000,00001000,00000004,0032fe40)
ret=05bd0336
0024:Ret KERNEL32.VirtualProtect() retval=00000001 ret=05bd0336
0024:Call KERNEL32.VirtualProtect(00400000,00001000,00000002,0032fe40)
ret=05bd034b
0024:Ret KERNEL32.VirtualProtect() retval=00000001 ret=05bd034b
0024:trace:seh:raise_exception code=c0000005 flags=0 addr=0xb74a916a
ip=b74a916a tid=0024
0024:trace:seh:raise_exception info[0]=00000000
0024:trace:seh:raise_exception info[1]=ffffffff
0024:trace:seh:raise_exception eax=7bc9d7a7 ebx=b75e0ff4 ecx=0032fdcc
edx=7bc9d7a7 esi=0032fc74 edi=ffffffc8
0024:trace:seh:raise_exception ebp=0032fc48 esp=0032f6bc cs=0073 ds=007b
es=007b fs=0033 gs=0002 flags=00010246
0024:trace:seh:call_vectored_handlers calling handler at 0x7e16e0bd
code=c0000005 flags=0
0024:trace:seh:call_vectored_handlers handler at 0x7e16e0bd returned 0
0024:trace:seh:call_stack_handlers calling handler at 0x7bc90f61 code=c0000005
flags=0
0024:Call KERNEL32.UnhandledExceptionFilter(0032f194) ret=7bc90f9b
wine: Unhandled page fault on read access to 0xffffffff at address 0xb74a916a
(thread 0024), starting debugger...
0024:trace:seh:start_debugger Starting debugger "winedbg --auto 35 52"
0024:Ret KERNEL32.UnhandledExceptionFilter() retval=00000000 ret=7bc90f9b
0024:trace:seh:call_stack_handlers handler at 0x7bc90f61 returned 1
Unhandled exception: page fault on read access to 0xffffffff in 32-bit code
(0xb74a916a).
Register dump:
CS:0073 SS:007b DS:007b ES:007b FS:0033 GS:0002
EIP:b74a916a ESP:0032f6bc EBP:0032fc48 EFLAGS:00010246( R- -- I Z- -P- )
EAX:7bc9d7a7 EBX:b75e0ff4 ECX:0032fdcc EDX:7bc9d7a7
ESI:0032fc74 EDI:ffffffc8
Stack dump:
0x0032f6bc: 0032fc7c 7bc9d82e 0032fc58 b74a992c
0x0032f6cc: 0032fc7c 7bc9d82d 00000001 00000000
0x0032f6dc: 0032fc8c 7bc9d82d 00000001 00000001
0x0032f6ec: 7bc9d82d 00000000 00000000 00000001
0x0032f6fc: 7bc9d82d 00000000 00000000 00000000
0x0032f70c: 00000000 00000000 00000000 00000000
Backtrace:
=>0 0xb74a916a _IO_vfprintf+0x3a() in libc.so.6 (0x0032fc48)
1 0xb74cbdbb vsnprintf+0xca() in libc.so.6 (0x0032fc74)
2 0x7bc350f9 NTDLL_dbg_vprintf+0x56() in ntdll (0x0032fd90)
3 0xb761ab63 wine_dbg_printf+0x2e() in libwine.so.1 (0x0032fdc0)
4 0x7bc640e5 relay_call+0x113() in ntdll (0x0032fe10)
5 0x7b8224ad in kernel32 (+0x124ac) (0x0032fe60)
6 0x004075cd in exeinfope (+0x75cc) (0x0032fe60)
7 0x7b85de44 call_process_entry+0xb() in kernel32 (0x0032fe78)
8 0x7b85df8a start_process+0x143() in kernel32 (0x0032fec8)
9 0x7bc7a244 call_thread_func+0xb() in ntdll (0x0032fed8)
10 0x7bc7a282 call_thread_entry_point+0x33() in ntdll (0x0032ffb8)
11 0x7bc51ebc start_process+0x25() in ntdll (0x0032ffe8)
12 0xb761edb5 wine_call_on_stack+0x1c() in libwine.so.1 (0x00000000)
0xb74a916a _IO_vfprintf+0x3a in libc.so.6: movl %gs:0x00000000,%ecx
--- snip ---
The protection scheme fiddles with %gs selector value which breaks TLS pointer
access through %gs:0 (Wine uses %fs) or the stack protector scheme that
Userland libs and Wine are built with (glibc provided __stack_chk_guard at
%gs:0x14).
My gcc 4.6.1 x86 host toolchain has -fstack-protector enabled by default hence
Wine gets the stack canary code in the binaries.
The Glibc here (Xubuntu 11.10) has stack smashing protection enabled by
default.
Even if Wine is built with "-fno-stack-protector" the app would still break
glibc %gs TLS code.
This is just a "collector" bug for apps that run into this issue.
WONTFIX obviously, there is no reliable way to know when to repair/restore %gs
value (and restarting faulting instruction).
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.
http://bugs.winehq.org/show_bug.cgi?id=28326
Summary: CDBurnerXP's audio player is missing some visual
elements
Product: Wine
Version: 1.3.27
Platform: x86-64
URL: http://cdburnerxp.se/download?more-options
OS/Version: Linux
Status: UNCONFIRMED
Severity: trivial
Priority: P2
Component: gdiplus
AssignedTo: wine-bugs(a)winehq.org
ReportedBy: RandomAccountName(a)mail.com
Created an attachment (id=36293)
--> (http://bugs.winehq.org/attachment.cgi?id=36293)
Builtin/native gdiplus comparison screenshots
In CDBurnerXP, the audio player dialog does not display the elapsed playback
time, and the outer edges of the pseudo-LED showing the current track are also
missing. Both can be seen with native gdiplus. To reproduce the problem:
1. Use winetricks dotnet20 before installing
2. From the main menu, choose "audio disc"
3. Observe the appearance of the audio player above the upper-right corner of
the program window
--
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.
http://bugs.winehq.org/show_bug.cgi?id=15381
Summary: CoFreeUnusedLibraries will crash COM server or cause
0x800703E6/I_RpcReceive error 0x3e6
Product: Wine
Version: 1.0.0
Platform: Other
OS/Version: other
Status: UNCONFIRMED
Severity: normal
Priority: P2
Component: ole32
AssignedTo: wine-bugs(a)winehq.org
ReportedBy: dmda(a)yandex.ru
Created an attachment (id=16230)
--> (http://bugs.winehq.org/attachment.cgi?id=16230)
demo illustrating the problem
if CoFreeUnusedLibraries is called by COM server, it will break RPC channcel
and lead to the errors
Attached is client/server code that demonstrates the problem.
If you comment out CoFreeUnusedLibraries call, it will start to work.
Steps:
-comple all 3 projects in the Workspace (Debug target is the only appropriate
for the sake of demo)
-make sure server and proxy are registered by running testserver.exe
-RegServer, regsvr32 testserverPS.dll
-run testproject.exe (the client)
Expected behaviour:
1. it will show server's message "CServer is created", click ok
2. it will show client's message "press OK when ready", click ok
3. it will show server's message passed by the client "Hello world!", click ok
4. it will show client's message "call succeeded" and client will exit
5. after roughly 6sec it will show that the server is unloaded/
Actual behaviour:
1. it will show server's message "CServer is created", click ok
2. it will show client's message "press OK when ready", click ok
3. it will show server's message passed by the client "Hello world!", click ok
4. it will dump out trouble in the console and show client's message "call
failed"
You may call CoFreeUnusedLibraries anywhere in the appartment and it will break
RPC on the server side. In some cases it will crash whole the server, like in
the demo.
Tested environment:
Fedora Core 8, 32bit, x86, wine 1.0 installed through the updates
--
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.