tony2001 Thu Aug 24 11:06:02 2006 UTC Modified files: (Branch: PHP_5_2) /php-src/ext/standard config.m4 datetime.c Log: MFH: fix segfault in strptime() on 64bit Linuxes, caused by the missing declaration http://cvs.php.net/viewvc.cgi/php-src/ext/standard/config.m4?r1=1.80.2.3&r2=1.80.2.3.2.1&diff_format=u Index: php-src/ext/standard/config.m4 diff -u php-src/ext/standard/config.m4:1.80.2.3 php-src/ext/standard/config.m4:1.80.2.3.2.1 --- php-src/ext/standard/config.m4:1.80.2.3 Wed Jan 4 21:31:29 2006 +++ php-src/ext/standard/config.m4 Thu Aug 24 11:06:02 2006 @@ -1,4 +1,4 @@ -dnl $Id: config.m4,v 1.80.2.3 2006/01/04 21:31:29 derick Exp $ -*- autoconf -*- +dnl $Id: config.m4,v 1.80.2.3.2.1 2006/08/24 11:06:02 tony2001 Exp $ -*- autoconf -*- divert(3)dnl @@ -477,6 +477,26 @@ AC_DEFINE([HAVE_HUGE_VAL_NAN], 1, [whether HUGE_VAL + -HUGEVAL == NAN]) fi +AC_CACHE_CHECK(whether strptime() declaration fails, ac_cv_strptime_decl_fails,[ + AC_TRY_COMPILE([ +#include <time.h> + ],[ +#ifndef HAVE_STRPTIME +#error no strptime() on this platform +#else +/* use invalid strptime() declaration to see if it fails to compile */ +int strptime(const char *s, const char *format, struct tm *tm); +#endif + ],[ + ac_cv_strptime_decl_fails=no + ],[ + ac_cv_strptime_decl_fails=yes + ]) +]) +if test "$ac_cv_strptime_decl_fails" = "yes"; then + AC_DEFINE([HAVE_STRPTIME_DECL_FAILS], 1, [whether strptime() declaration fails]) +fi + PHP_CHECK_I18N_FUNCS PHP_NEW_EXTENSION(standard, array.c base64.c basic_functions.c browscap.c crc32.c crypt.c \ http://cvs.php.net/viewvc.cgi/php-src/ext/standard/datetime.c?r1=1.134.2.2.2.1&r2=1.134.2.2.2.2&diff_format=u Index: php-src/ext/standard/datetime.c diff -u php-src/ext/standard/datetime.c:1.134.2.2.2.1 php-src/ext/standard/datetime.c:1.134.2.2.2.2 --- php-src/ext/standard/datetime.c:1.134.2.2.2.1 Sun Aug 20 18:20:07 2006 +++ php-src/ext/standard/datetime.c Thu Aug 24 11:06:02 2006 @@ -18,11 +18,7 @@ +----------------------------------------------------------------------+ */ -/* $Id: datetime.c,v 1.134.2.2.2.1 2006/08/20 18:20:07 iliaa Exp $ */ - -#if HAVE_STRPTIME -#define _XOPEN_SOURCE -#endif +/* $Id: datetime.c,v 1.134.2.2.2.2 2006/08/24 11:06:02 tony2001 Exp $ */ #include "php.h" #include "zend_operators.h" @@ -85,6 +81,10 @@ #if HAVE_STRPTIME +#ifndef HAVE_STRPTIME_DECL_FAILS +char *strptime(const char *s, const char *format, struct tm *tm); +#endif + /* {{{ proto string strptime(string timestamp, string format) Parse a time/date generated with strftime() */ PHP_FUNCTION(strptime)
-- PHP CVS Mailing List (http://www.php.net/) To unsubscribe, visit: http://www.php.net/unsub.php