https://bugs.winehq.org/show_bug.cgi?id=38870
Bug ID: 38870 Summary: regsvr32: Flags specified after the DLL file are not handled Product: Wine Version: 1.7.46 Hardware: x86 OS: Linux Status: UNCONFIRMED Severity: normal Priority: P2 Component: programs Assignee: wine-bugs@winehq.org Reporter: hugh.mcmaster@outlook.com Distribution: ---
MediaInfo does not follow the usual regsvr32.exe <flags> <DLL> syntax.
During install it does this: regsvr32 "C:\Program Files\MediaInfo\MediaInfo_InfoTip.dll" /s
This prints output to the terminal, even though the /s flag should invoke Silent mode: regsvr32: Failed to register DLL 'C:\Program Files\MediaInfo\MediaInfo_InfoTip.dll'
Note that this failure is a different issue.
What makes this bug serious is the uninstall routine:
regsvr32 "C:\Programs Files\MediaInfo\MediaInfo_InfoTip.dll" /u /s
This prints the same error in the terminal:
regsvr32: Failed to register DLL 'C:\Program Files\MediaInfo\MediaInfo_InfoTip.dll'
Note the issue here, though. Wine has attempted to register the DLL, not unregister it.
MediaInfo is the only program that I currently know of using regsvr32 in this way. There will be others.
Testers: be aware of ad-supported installer. Choose 'I do not accept' when asked if you want to install 'One System Care'.
The bug is caused by Wine's handling of regsvr32 arguments. We process them in a linear way, whereas Windows processes all flags first.
Using a dynamic array of char or int would probably fix the issue.