From 6e3a31d59561ff3659212c58411272ccc4b07024 Mon Sep 17 00:00:00 2001 From: James Zern Date: Fri, 16 Jan 2015 17:43:36 -0800 Subject: [PATCH] wicdec: (msvs) quiet some /analyze warnings add additional return checks and asserts to avoid: C6102: Using 'XXX' from failed function call ... (cherry picked from commit 9b228b5416903cf425b60debeefb0a4c92464f90) Change-Id: I51f5fa630324e0cd7b2d9fceefecb4f4021474b1 --- examples/wicdec.c | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/examples/wicdec.c b/examples/wicdec.c index ab6ba698..6ba9de63 100644 --- a/examples/wicdec.c +++ b/examples/wicdec.c @@ -15,6 +15,7 @@ #include "webp/config.h" #endif +#include #include #ifdef HAVE_WINCODEC_H @@ -109,6 +110,7 @@ static HRESULT ExtractICCP(IWICImagingFactory* const factory, IFS(IWICBitmapFrameDecode_GetColorContexts(frame, count, color_contexts, &num_color_contexts)); + assert(FAILED(hr) || num_color_contexts <= count); for (i = 0; SUCCEEDED(hr) && i < num_color_contexts; ++i) { WICColorContextType type; IFS(IWICColorContext_GetType(color_contexts[i], &type)); @@ -116,7 +118,7 @@ static HRESULT ExtractICCP(IWICImagingFactory* const factory, UINT size; IFS(IWICColorContext_GetProfileBytes(color_contexts[i], 0, NULL, &size)); - if (size > 0) { + if (SUCCEEDED(hr) && size > 0) { iccp->bytes = (uint8_t*)malloc(size); if (iccp->bytes == NULL) { hr = E_OUTOFMEMORY; @@ -261,7 +263,7 @@ int ReadPictureWithWIC(const char* const filename, IFS(IWICBitmapFrameDecode_GetPixelFormat(frame, &src_pixel_format)); IFS(IWICBitmapDecoder_GetContainerFormat(decoder, &src_container_format)); - if (keep_alpha) { + if (SUCCEEDED(hr) && keep_alpha) { const GUID** guid; for (guid = kAlphaContainers; *guid != NULL; ++guid) { if (IsEqualGUID(MAKE_REFGUID(src_container_format),