mirror of
https://gitlab.freedesktop.org/mesa/mesa.git
synced 2026-03-10 15:50:33 +01:00
st/nine: Fix resource9 private data
Store a copy of GUID in the header that is under our control and use it as key for the hashtable instead of using the application provided pointer. The application might change the memory after leaving the function. Fixes a crash for issue https://github.com/iXit/Mesa-3D/issues/130 Signed-off-by: Patrick Rudolph <siro@das-labor.org> Reviewed-by: Axel Davy <axel.davy@ens.fr>
This commit is contained in:
parent
5c79bd666b
commit
827fee059e
2 changed files with 3 additions and 1 deletions
|
|
@ -5,6 +5,7 @@
|
|||
struct pheader
|
||||
{
|
||||
boolean unknown;
|
||||
GUID guid;
|
||||
DWORD size;
|
||||
char data[1];
|
||||
};
|
||||
|
|
|
|||
|
|
@ -141,8 +141,9 @@ NineResource9_SetPrivateData( struct NineResource9 *This,
|
|||
|
||||
header->size = SizeOfData;
|
||||
memcpy(header->data, user_data, header->size);
|
||||
memcpy(&header->guid, refguid, sizeof(header->guid));
|
||||
|
||||
err = util_hash_table_set(This->pdata, refguid, header);
|
||||
err = util_hash_table_set(This->pdata, &header->guid, header);
|
||||
if (err == PIPE_OK) {
|
||||
if (header->unknown) { IUnknown_AddRef(*(IUnknown **)header->data); }
|
||||
return D3D_OK;
|
||||
|
|
|
|||
Loading…
Add table
Reference in a new issue