From d9ecee1065cf391979dee0051b53fb5ff729ca2e Mon Sep 17 00:00:00 2001 From: Tom Sepez Date: Thu, 6 Nov 2014 14:38:12 -0800 Subject: Adding constructor to _FX_SYSTEMTIME to resolve uninitialized read bugs found by /analyze on some error paths Warning from /analyze was: src\third_party\pdfium\fpdfsdk\include\fsdk_mgr.h(96) : warning C6001: Using uninitialized memory 'fxtime'. Other error paths can also lead to reading from an uninitialized _FX_SYSTEMTIME object. Code-gen for the constructor is small enough (four writes of zeroed EAX with VC++, less with gcc) to make putting the constructor in a .cc file unnecessary. Approval of in-class member initialization would make this fix simpler but that has not quite been approved yet. BUG=https://code.google.com/p/pdfium/issues/detail?id=70 BUG=427616 R=tsepez@chromium.org Review URL: https://codereview.chromium.org/692533005 --- fpdfsdk/include/fx_systemhandler.h | 9 +++++++++ 1 file changed, 9 insertions(+) diff --git a/fpdfsdk/include/fx_systemhandler.h b/fpdfsdk/include/fx_systemhandler.h index b9ac413696..e0c362276c 100644 --- a/fpdfsdk/include/fx_systemhandler.h +++ b/fpdfsdk/include/fx_systemhandler.h @@ -13,6 +13,15 @@ typedef void (*TimerCallback)(FX_INT32 idEvent); typedef struct _FX_SYSTEMTIME { + _FX_SYSTEMTIME() + : wYear(0), + wMonth(0), + wDayOfWeek(0), + wDay(0), + wHour(0), + wMinute(0), + wSecond(0), + wMilliseconds(0) {} FX_WORD wYear; FX_WORD wMonth; FX_WORD wDayOfWeek; -- cgit v1.2.3