[PATCH] gdiplus: avoid uninitialized usage of bitmap (Coverity)

Marcus Meissner meissner at suse.de
Mon Sep 3 11:56:47 CDT 2012


CID718731

(the code might probably better get if (FAILED()) exit paths.)

Ciao, Marcus
---
 dlls/gdiplus/image.c |   22 ++++++++++++----------
 1 Datei geändert, 12 Zeilen hinzugefügt(+), 10 Zeilen entfernt(-)

diff --git a/dlls/gdiplus/image.c b/dlls/gdiplus/image.c
index c3a542b..b657969 100644
--- a/dlls/gdiplus/image.c
+++ b/dlls/gdiplus/image.c
@@ -3124,17 +3124,19 @@ static GpStatus decode_image_wic(IStream* stream, REFCLSID clsid, UINT active_fr
             IWICBitmapSource_Release(source);
         }
 
-        bitmap->metadata_reader = NULL;
-        if (IWICBitmapFrameDecode_QueryInterface(frame, &IID_IWICMetadataBlockReader, (void **)&block_reader) == S_OK)
-        {
-            UINT block_count = 0;
-            if (IWICMetadataBlockReader_GetCount(block_reader, &block_count) == S_OK && block_count)
-                IWICMetadataBlockReader_GetReaderByIndex(block_reader, 0, &bitmap->metadata_reader);
-            IWICMetadataBlockReader_Release(block_reader);
-        }
+        if (SUCCEEDED(hr)) {
+            bitmap->metadata_reader = NULL;
+            if (IWICBitmapFrameDecode_QueryInterface(frame, &IID_IWICMetadataBlockReader, (void **)&block_reader) == S_OK)
+            {
+                UINT block_count = 0;
+                if (IWICMetadataBlockReader_GetCount(block_reader, &block_count) == S_OK && block_count)
+                    IWICMetadataBlockReader_GetReaderByIndex(block_reader, 0, &bitmap->metadata_reader);
+                IWICMetadataBlockReader_Release(block_reader);
+            }
 
-        palette = get_palette(frame, palette_type);
-        IWICBitmapFrameDecode_Release(frame);
+            palette = get_palette(frame, palette_type);
+            IWICBitmapFrameDecode_Release(frame);
+        }
     }
 
     IWICBitmapDecoder_Release(decoder);
-- 
1.7.10.4




More information about the wine-patches mailing list