mirror of
https://github.com/ValveSoftware/Proton.git
synced 2024-12-27 07:05:46 +03:00
lsteamclient: Also don't cache interfaces with vtable allocated from steamclient.dll.
CW-Bug-Id: #20909
This commit is contained in:
parent
ba3d473ec1
commit
18195c558d
@ -615,8 +615,14 @@ void *create_win_interface(const char *name, void *linux_side)
|
|||||||
if (!strcmp(name, constructors[i].iface_version))
|
if (!strcmp(name, constructors[i].iface_version))
|
||||||
{
|
{
|
||||||
ret = constructors[i].ctor(linux_side);
|
ret = constructors[i].ctor(linux_side);
|
||||||
if (allocated_from_steamclient_dll(ret))
|
if (allocated_from_steamclient_dll(ret)
|
||||||
|
|| allocated_from_steamclient_dll(*(void **)ret) /* vtable */)
|
||||||
|
{
|
||||||
|
/* Don't cache interfaces allocated from steamclient.dll space.
|
||||||
|
* steamclient may get reloaded by the app, miss the previous
|
||||||
|
* data and potentially have different load address. */
|
||||||
break;
|
break;
|
||||||
|
}
|
||||||
|
|
||||||
e = HeapAlloc(GetProcessHeap(), 0, sizeof(*e));
|
e = HeapAlloc(GetProcessHeap(), 0, sizeof(*e));
|
||||||
e->name = constructors[i].iface_version;
|
e->name = constructors[i].iface_version;
|
||||||
|
Loading…
Reference in New Issue
Block a user