MFH: fix segfault in strptime() on 64bit Linuxes, caused by the missing declaration

This commit is contained in:
Antony Dovgal 2006-08-24 11:06:02 +00:00
parent c42b3bf689
commit 0584dc011c
2 changed files with 24 additions and 4 deletions

View file

@ -477,6 +477,26 @@ if test "$ac_cv_huge_val_nan" = "yes"; then
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 \

View file

@ -20,10 +20,6 @@
/* $Id$ */
#if HAVE_STRPTIME
#define _XOPEN_SOURCE
#endif
#include "php.h"
#include "zend_operators.h"
#include "datetime.h"
@ -85,6 +81,10 @@ PHPAPI char *php_std_date(time_t t TSRMLS_DC)
#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)