From: Tim Clem tclem@codeweavers.com
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 22422f7e966..c1835695af4 100644 --- a/dlls/winspool.drv/info.c +++ b/dlls/winspool.drv/info.c @@ -1895,7 +1895,7 @@ LONG WINAPI DocumentPropertiesA(HWND hwnd, HANDLE printer, char *device_name, DE outputW = HeapAlloc(GetProcessHeap(), 0, ret); }
- if (input) inputW = GdiConvertToDevmodeW(input); + if (input && (mode & DM_IN_BUFFER)) inputW = GdiConvertToDevmodeW(input);
ret = DocumentPropertiesW(hwnd, printer, device, outputW, inputW, mode);