From: Vadim Zeitlin Date: Thu, 9 Sep 2010 21:57:52 +0000 (+0000) Subject: Initialize all fields of struct tm used by wxDateTime::Format(). X-Git-Url: https://git.saurik.com/wxWidgets.git/commitdiff_plain/ba75967c9c0656ec0bcc342878cd9cdd27857ea9 Initialize all fields of struct tm used by wxDateTime::Format(). Passing not fully initialized struct tm to strftime() results in Valgrind errors and possible nastiness, see #12455. Simply use memset() to set all fields of this system-dependent struct to 0 initially. git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@65494 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775 --- diff --git a/src/common/datetimefmt.cpp b/src/common/datetimefmt.cpp index bf92016525..7095fde856 100644 --- a/src/common/datetimefmt.cpp +++ b/src/common/datetimefmt.cpp @@ -374,12 +374,11 @@ wxString wxDateTime::Format(const wxString& formatp, const TimeZone& tz) const // used for calls to strftime() when we only deal with time struct tm tmTimeOnly; + memset(&tmTimeOnly, 0, sizeof(tmTimeOnly)); tmTimeOnly.tm_hour = tm.hour; tmTimeOnly.tm_min = tm.min; tmTimeOnly.tm_sec = tm.sec; - tmTimeOnly.tm_wday = 0; - tmTimeOnly.tm_yday = 0; - tmTimeOnly.tm_mday = 1; // any date will do + tmTimeOnly.tm_mday = 1; // any date will do, use 1976-01-01 tmTimeOnly.tm_mon = 0; tmTimeOnly.tm_year = 76; tmTimeOnly.tm_isdst = 0; // no DST, we adjust for tz ourselves