From: Anatol Belski Date: Wed, 6 Mar 2013 11:37:57 +0000 (+0100) Subject: Fixed bug #64359 strftime crash with VS2012 X-Git-Tag: php-5.5.0alpha6~5 X-Git-Url: https://granicus.if.org/sourcecode?a=commitdiff_plain;h=371000a877c91cfc11ff3c75ce83826797478569;p=php Fixed bug #64359 strftime crash with VS2012 --- diff --git a/NEWS b/NEWS index a5b11c0d32..6ac84183b1 100644 --- a/NEWS +++ b/NEWS @@ -13,6 +13,9 @@ PHP NEWS - PCRE: . Merged PCRE 8.32. (Anatol) +- DateTime: + . Fixed bug #64359 (strftime crash with VS2012). (Anatol) + 21 Feb 2013, PHP 5.5.0 Alpha 5 - Core: diff --git a/ext/date/php_date.c b/ext/date/php_date.c index f4115dc7e1..418747c298 100644 --- a/ext/date/php_date.c +++ b/ext/date/php_date.c @@ -1574,7 +1574,17 @@ PHPAPI void php_strftime(INTERNAL_FUNCTION_PARAMETERS, int gmt) long timestamp = 0; struct tm ta; int max_reallocs = 5; - size_t buf_len = 64, real_len; +#ifdef PHP_WIN32 + /* VS2012 has a bug where strftime crash with %z and %Z format when the + initial buffer is too small. Increasing the buffer size helps in a + workaround to fixs longer format strings for this VS version. + http://connect.microsoft.com/VisualStudio/feedback/details/759720/vs2012-strftime-crash-with-z-formatting-code + */ + size_t buf_len = 256; +#else + size_t buf_len = 64; +#endif + size_t real_len; timelib_time *ts; timelib_tzinfo *tzi; timelib_time_offset *offset = NULL;