Module: wine Branch: master Commit: faae214455b9e66aef152b13193f08ce755016ac URL: https://gitlab.winehq.org/wine/wine/-/commit/faae214455b9e66aef152b13193f08c...
Author: Tim Clem tclem@codeweavers.com Date: Mon Nov 14 12:53:53 2022 -0800
winspool.drv: Ignore input in DocumentPropertiesA unless DM_IN_BUFFER is passed.
The GdiConvertToDevmodeW call can crash if the incoming DEVMODEA has nonsense values.
---
dlls/winspool.drv/info.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/dlls/winspool.drv/info.c b/dlls/winspool.drv/info.c index 5a74cb29bd9..496cf56de3c 100644 --- a/dlls/winspool.drv/info.c +++ b/dlls/winspool.drv/info.c @@ -1898,7 +1898,7 @@ LONG WINAPI DocumentPropertiesA(HWND hwnd, HANDLE printer, char *device_name, DE outputW = malloc(ret); }
- if (input) inputW = GdiConvertToDevmodeW(input); + if (input && (mode & DM_IN_BUFFER)) inputW = GdiConvertToDevmodeW(input);
ret = DocumentPropertiesW(hwnd, printer, device, outputW, inputW, mode);