Commit 2dd90388 authored by Nikolay Sivov's avatar Nikolay Sivov Committed by Alexandre Julliard

dwrite: Fix stretch value validation in CreateTextFormat().

parent 27cdb54b
/*
* Copyright 2012, 2014-2021 Nikolay Sivov for CodeWeavers
* Copyright 2012, 2014-2022 Nikolay Sivov for CodeWeavers
*
* This library is free software; you can redistribute it and/or
* modify it under the terms of the GNU Lesser General Public
......@@ -723,10 +723,13 @@ HRESULT create_text_format(const WCHAR *family_name, IDWriteFontCollection *coll
if (size <= 0.0f)
return E_INVALIDARG;
if (((UINT32)weight > DWRITE_FONT_WEIGHT_ULTRA_BLACK) ||
((UINT32)stretch > DWRITE_FONT_STRETCH_ULTRA_EXPANDED) ||
((UINT32)style > DWRITE_FONT_STYLE_ITALIC))
if ((UINT32)weight > DWRITE_FONT_WEIGHT_ULTRA_BLACK
|| stretch == DWRITE_FONT_STRETCH_UNDEFINED
|| (UINT32)stretch > DWRITE_FONT_STRETCH_ULTRA_EXPANDED
|| (UINT32)style > DWRITE_FONT_STYLE_ITALIC)
{
return E_INVALIDARG;
}
if (!(object = calloc(1, sizeof(*object))))
return E_OUTOFMEMORY;
......
......@@ -1196,6 +1196,10 @@ static void test_CreateTextFormat(void)
10, 10.0f, L"en-us", &format);
ok(hr == E_INVALIDARG, "Unexpected hr %#lx.\n", hr);
hr = IDWriteFactory_CreateTextFormat(factory, L"Tahoma", NULL, DWRITE_FONT_WEIGHT_NORMAL, DWRITE_FONT_STYLE_ITALIC,
DWRITE_FONT_STRETCH_UNDEFINED, 10.0f, L"en-us", &format);
ok(hr == E_INVALIDARG, "Unexpected hr %#lx.\n", hr);
/* empty family name */
hr = IDWriteFactory_CreateTextFormat(factory, L"", NULL, DWRITE_FONT_WEIGHT_NORMAL, DWRITE_FONT_STYLE_NORMAL,
DWRITE_FONT_STRETCH_NORMAL, 10.0f, L"en-us", &format);
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment