diff --git a/win32ss/gdi/ntgdi/font.c b/win32ss/gdi/ntgdi/font.c index 7d1aebbb66a..d57c01d7bda 100644 --- a/win32ss/gdi/ntgdi/font.c +++ b/win32ss/gdi/ntgdi/font.c @@ -908,25 +908,24 @@ NtGdiGetOutlineTextMetricsInternalW (HDC hDC, return 0; } IntGetOutlineTextMetrics(FontGDI, Size, potm); - if (otm) - { - _SEH2_TRY - { - ProbeForWrite(otm, Size, 1); - RtlCopyMemory(otm, potm, Size); - } - _SEH2_EXCEPT(EXCEPTION_EXECUTE_HANDLER) - { - Status = _SEH2_GetExceptionCode(); - } - _SEH2_END - if (!NT_SUCCESS(Status)) - { - EngSetLastError(ERROR_INVALID_PARAMETER); - Size = 0; - } + _SEH2_TRY + { + ProbeForWrite(otm, Size, 1); + RtlCopyMemory(otm, potm, Size); } + _SEH2_EXCEPT(EXCEPTION_EXECUTE_HANDLER) + { + Status = _SEH2_GetExceptionCode(); + } + _SEH2_END + + if (!NT_SUCCESS(Status)) + { + EngSetLastError(ERROR_INVALID_PARAMETER); + Size = 0; + } + ExFreePoolWithTag(potm,GDITAG_TEXT); return Size; }