Ziqing Hui : windowscodecs: Check NULL parameters for DdsFrameDecode_GetSize().

Alexandre Julliard julliard at winehq.org
Mon Jun 1 15:14:56 CDT 2020


Module: wine
Branch: master
Commit: 0d263f9fdaac21e51844376da5cfa054ee7fc520
URL:    https://source.winehq.org/git/wine.git/?a=commit;h=0d263f9fdaac21e51844376da5cfa054ee7fc520

Author: Ziqing Hui <zhui at codeweavers.com>
Date:   Mon Jun  1 12:58:52 2020 +0800

windowscodecs: Check NULL parameters for DdsFrameDecode_GetSize().

Signed-off-by: Ziqing Hui <zhui at codeweavers.com>
Signed-off-by: Esme Povirk <vincent at codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard at winehq.org>

---

 dlls/windowscodecs/ddsformat.c       | 2 ++
 dlls/windowscodecs/tests/ddsformat.c | 6 ++++++
 2 files changed, 8 insertions(+)

diff --git a/dlls/windowscodecs/ddsformat.c b/dlls/windowscodecs/ddsformat.c
index 20017788a0..9446c7e8e6 100644
--- a/dlls/windowscodecs/ddsformat.c
+++ b/dlls/windowscodecs/ddsformat.c
@@ -301,6 +301,8 @@ static HRESULT WINAPI DdsFrameDecode_GetSize(IWICBitmapFrameDecode *iface,
 {
     DdsFrameDecode *This = impl_from_IWICBitmapFrameDecode(iface);
 
+    if (!puiWidth || !puiHeight) return E_INVALIDARG;
+
     *puiWidth = This->width;
     *puiHeight = This->height;
 
diff --git a/dlls/windowscodecs/tests/ddsformat.c b/dlls/windowscodecs/tests/ddsformat.c
index c7f56307d7..be7bb0a0e6 100644
--- a/dlls/windowscodecs/tests/ddsformat.c
+++ b/dlls/windowscodecs/tests/ddsformat.c
@@ -382,6 +382,12 @@ static void test_dds_decoder_frame_size(IWICBitmapDecoder *decoder, IWICBitmapFr
     ok (hr == S_OK, "%d: GetParameters failed, hr=%x\n", i, hr);
     if (hr != S_OK) goto end;
 
+    hr = IWICBitmapFrameDecode_GetSize(frame_decode, NULL, NULL);
+    ok (hr == E_INVALIDARG, "%d: [frame %d] Got unexpected hr %x\n", i, frame_index, hr);
+    hr = IWICBitmapFrameDecode_GetSize(frame_decode, NULL, &height);
+    ok (hr == E_INVALIDARG, "%d: [frame %d] Got unexpected hr %x\n", i, frame_index, hr);
+    hr = IWICBitmapFrameDecode_GetSize(frame_decode, &width, NULL);
+    ok (hr == E_INVALIDARG, "%d: [frame %d] Got unexpected hr %x\n", i, frame_index, hr);
     hr = IWICBitmapFrameDecode_GetSize(frame_decode, &width, &height);
     ok (hr == S_OK, "%d: GetSize failed for frame %d, hr=%x\n", i, frame_index, hr);
     if (hr != S_OK) goto end;




More information about the wine-cvs mailing list