[PATCH 1/5] kernel32: Allow GetBinaryType() to succeed on Unix binaries.

Zebediah Figura z.figura12 at gmail.com
Mon Apr 30 13:39:12 CDT 2018


On 30/04/18 12:44, Alexandre Julliard wrote:
> Zebediah Figura <z.figura12 at gmail.com> writes:
> 
>> On 11/04/18 10:41, Alexandre Julliard wrote:
>>> Zebediah Figura <z.figura12 at gmail.com> writes:
>>>
>>>> This is necessary for services.exe to correctly start the driver,
>>>> and seems desirable given the function's other uses.
>>>
>>> I don't think it's a good idea to claim that non-PE files are Windows
>>> binaries. It's going to break many assumptions in app code, and even in
>>> Wine itself (cf. SHGetFileInfo).
>>>
>>
>> Thanks for the review; sorry it took so long to get back to this.
>>
>> services.exe uses GetBinaryType to determine which architecture of
>> winedevice.exe to start, and in the case of the given test DLL it'll be
>> passed a builtin .so when running under Linux. What should be done
>> instead in this case? Reimplement MODULE_GetBinaryType in services.exe?
>> Somehow pass a fake DLL from the test?
> 
> services.exe should never be passed a .so file directly. It should be
> passed the path to a PE binary, and rely on the loader to find the
> corresponding builtin.  If the PE file doesn't exist, it should still
> try to load the builtin; in that case it would be OK to default to the
> current platform.
> 

Thanks, I agree this seems sensible. I'll send a revised patch series.



More information about the wine-devel mailing list