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