mirror of
https://github.com/php/php-src.git
synced 2025-08-16 05:58:45 +02:00
MFH: fix segfault in strptime() on 64bit Linuxes, caused by the missing declaration
This commit is contained in:
parent
c42b3bf689
commit
0584dc011c
2 changed files with 24 additions and 4 deletions
|
@ -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 \
|
||||
|
|
|
@ -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)
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue