[PATCH v2 0/1] MR10917: oleaut32/olepropframe.c: Initialize page_info in OleCreatePropertyFrameIndirect
Uninitialized page_info can cause corruption in nearby stack memory: IPropertyPage_GetPageInfo appears to depend on page_info.cb being valid. I got NULL returned from CreatePropertySheetPageW, because property_sheet_page.dwSize was corrupted (set to 0). This commit fixes an error by initializing page_info with 0 and setting page_info.cb = sizeof(PROPPAGEINFO) -- v2: oleaut32/olepropframe.c: Initialize page_info in OleCreatePropertyFrameIndirect https://gitlab.winehq.org/wine/wine/-/merge_requests/10917
From: Ivan Ivlev <iviv@etersoft.ru> Signed-off-by: Ivan Ivlev <iviv@etersoft.ru> --- dlls/oleaut32/olepropframe.c | 2 ++ 1 file changed, 2 insertions(+) diff --git a/dlls/oleaut32/olepropframe.c b/dlls/oleaut32/olepropframe.c index cad1a2ad5c2..3106ebd6b54 100644 --- a/dlls/oleaut32/olepropframe.c +++ b/dlls/oleaut32/olepropframe.c @@ -286,6 +286,8 @@ HRESULT WINAPI OleCreatePropertyFrameIndirect(LPOCPFIPARAMS lpParams) if(FAILED(res)) WARN("SetObjects() failed, hr %#lx.\n", res); + memset(&page_info, 0, sizeof(page_info)); + page_info.cb = sizeof(page_info); res = IPropertyPage_GetPageInfo(property_page[i], &page_info); if(FAILED(res)) continue; -- GitLab https://gitlab.winehq.org/wine/wine/-/merge_requests/10917
Move changes right before GetPageInfo() and use sizeof(page_info). Rebased against master. -- https://gitlab.winehq.org/wine/wine/-/merge_requests/10917#note_141328
This merge request was approved by Nikolay Sivov. -- https://gitlab.winehq.org/wine/wine/-/merge_requests/10917
participants (3)
-
Ivan Ivlev -
Ivan Ivlev (@iviv) -
Nikolay Sivov (@nsivov)