Module: wine Branch: master Commit: 6a0a0d2a0b15bffa9d4a5b41e75be6765e731d69 URL: https://source.winehq.org/git/wine.git/?a=commit;h=6a0a0d2a0b15bffa9d4a5b41e...
Author: Piotr Caban piotr@codeweavers.com Date: Wed Jul 1 10:43:00 2020 +0200
msi: Fix use after free error in TransformView_set_row.
Signed-off-by: Piotr Caban piotr@codeweavers.com Signed-off-by: Hans Leidekker hans@codeweavers.com Signed-off-by: Alexandre Julliard julliard@winehq.org
---
dlls/msi/table.c | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-)
diff --git a/dlls/msi/table.c b/dlls/msi/table.c index d4912ab3ae..3febcb3aa9 100644 --- a/dlls/msi/table.c +++ b/dlls/msi/table.c @@ -2341,7 +2341,7 @@ static UINT TransformView_set_row( MSIVIEW *view, UINT row, MSIRECORD *rec, UINT L"INSERT INTO `_TransformView` (`Table`, `Column`, `Row`, `Data`, `Current`) VALUES ('";
MSITABLEVIEW *tv = (MSITABLEVIEW*)view; - WCHAR buf[256], *query = buf; + WCHAR buf[256], *query; MSIRECORD *old_rec; MSIQUERY *q; WCHAR *key; @@ -2409,6 +2409,10 @@ static UINT TransformView_set_row( MSIVIEW *view, UINT row, MSIRECORD *rec, UINT return ERROR_OUTOFMEMORY; } } + else + { + query = buf; + }
memcpy( query, query_pfx, p * sizeof(WCHAR) ); len = wcslen( tv->name );