Haoyang Chen : dwrite/layout: Handle NULL format in CreateEllipsisTrimmingSign().
Alexandre Julliard
julliard at winehq.org
Mon Jan 18 17:00:37 CST 2021
Module: wine
Branch: master
Commit: b5dbd180b49003adb6483084520f1e09c09c7de4
URL: https://source.winehq.org/git/wine.git/?a=commit;h=b5dbd180b49003adb6483084520f1e09c09c7de4
Author: Haoyang Chen <chenhaoyang at uniontech.com>
Date: Mon Jan 18 15:38:40 2021 +0300
dwrite/layout: Handle NULL format in CreateEllipsisTrimmingSign().
Signed-off-by: Nikolay Sivov <nsivov at codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard at winehq.org>
---
dlls/dwrite/layout.c | 3 +++
dlls/dwrite/tests/layout.c | 5 +++++
2 files changed, 8 insertions(+)
diff --git a/dlls/dwrite/layout.c b/dlls/dwrite/layout.c
index 1f6201a6a93..58aa05abd44 100644
--- a/dlls/dwrite/layout.c
+++ b/dlls/dwrite/layout.c
@@ -5361,6 +5361,9 @@ HRESULT create_trimmingsign(IDWriteFactory7 *factory, IDWriteTextFormat *format,
*sign = NULL;
+ if (!format)
+ return E_INVALIDARG;
+
/* Validate reading/flow direction here, layout creation won't complain about
invalid combinations. */
reading = IDWriteTextFormat_GetReadingDirection(format);
diff --git a/dlls/dwrite/tests/layout.c b/dlls/dwrite/tests/layout.c
index beb09f400f9..7d950a0626c 100644
--- a/dlls/dwrite/tests/layout.c
+++ b/dlls/dwrite/tests/layout.c
@@ -1321,6 +1321,11 @@ static void test_CreateEllipsisTrimmingSign(void)
DWRITE_FONT_STRETCH_NORMAL, 10.0f, L"en-GB", &format);
ok(hr == S_OK, "Failed to create text format, hr %#x.\n", hr);
+ sign = (void *)0xdeadbeef;
+ hr = IDWriteFactory_CreateEllipsisTrimmingSign(factory, NULL, &sign);
+ ok(hr == E_INVALIDARG, "Unexpected hr %#x.\n", hr);
+ ok(!sign, "Unexpected pointer %p.\n", sign);
+
EXPECT_REF(format, 1);
hr = IDWriteFactory_CreateEllipsisTrimmingSign(factory, format, &sign);
ok(hr == S_OK, "got 0x%08x\n", hr);
More information about the wine-cvs
mailing list