On 2008/12/19 11:13, Steven Surdock wrote:
> > -----Original Message-----
> > From: Stuart Henderson [mailto:[email protected]]
> > could it be http://bugs.php.net/bug.php?id=46889 ?
>
> Very likely. Thanks!
>
> $ find cacti/ -name \*.php -exec grep strtotime {} \; | wc
> 67 388 4674
can you try this please?
Index: core/Makefile
===================================================================
RCS file: /cvs/ports/www/php5/core/Makefile,v
retrieving revision 1.39
diff -u -p -r1.39 Makefile
--- core/Makefile 9 Dec 2008 21:52:31 -0000 1.39
+++ core/Makefile 19 Dec 2008 20:49:25 -0000
@@ -4,7 +4,7 @@ COMMENT-main= server-side HTML-embedded
COMMENT-fastcgi=stand-alone FastCGI version of PHP
PKGNAME= php5-core-${V}
-PKGNAME-main= php5-core-${V}
+PKGNAME-main= php5-core-${V}p0
PKGNAME-fastcgi=php5-fastcgi-${V}
DISTFILES= php-${V}.tar.gz
Index: core/patches/patch-ext_date_lib_parse_date_c
===================================================================
RCS file: core/patches/patch-ext_date_lib_parse_date_c
diff -N core/patches/patch-ext_date_lib_parse_date_c
--- /dev/null 1 Jan 1970 00:00:00 -0000
+++ core/patches/patch-ext_date_lib_parse_date_c 19 Dec 2008 20:49:25
-0000
@@ -0,0 +1,29 @@
+from upstream cvs, fixes bug 46889, memory leak in strtotime()
+
+$OpenBSD$
+--- ext/date/lib/parse_date.c.orig Sun Dec 7 19:31:16 2008
++++ ext/date/lib/parse_date.c Fri Dec 19 20:42:27 2008
+@@ -1,4 +1,4 @@
+-/* Generated by re2c 0.13.5 on Sun Oct 26 11:59:08 2008 */
++/* Generated by re2c 0.13.5 on Thu Dec 18 15:52:22 2008 */
+ /*
+ +----------------------------------------------------------------------+
+ | PHP Version 5 |
+@@ -22395,7 +22395,7 @@ timelib_time* timelib_strtotime(char *s, int len, stru
+
+ void timelib_fill_holes(timelib_time *parsed, timelib_time *now, int options)
+ {
+- if (!(options && TIMELIB_OVERRIDE_TIME) && parsed->have_date &&
!parsed->have_time) {
++ if (!(options & TIMELIB_OVERRIDE_TIME) && parsed->have_date &&
!parsed->have_time) {
+ parsed->h = 0;
+ parsed->i = 0;
+ parsed->s = 0;
+@@ -22415,7 +22415,7 @@ void timelib_fill_holes(timelib_time *parsed, timelib_
+ parsed->tz_abbr = now->tz_abbr ? strdup(now->tz_abbr) : NULL;
+ }
+ if (!parsed->tz_info) {
+- parsed->tz_info = now->tz_info ?
timelib_tzinfo_clone(now->tz_info) : NULL;
++ parsed->tz_info = now->tz_info ? (!(options & TIMELIB_NO_CLONE)
? timelib_tzinfo_clone(now->tz_info) : now->tz_info) : NULL;
+ }
+ if (parsed->zone_type == 0 && now->zone_type != 0) {
+ parsed->zone_type = now->zone_type;
Index: core/patches/patch-ext_date_lib_parse_date_re
===================================================================
RCS file: core/patches/patch-ext_date_lib_parse_date_re
diff -N core/patches/patch-ext_date_lib_parse_date_re
--- /dev/null 1 Jan 1970 00:00:00 -0000
+++ core/patches/patch-ext_date_lib_parse_date_re 19 Dec 2008 20:49:25
-0000
@@ -0,0 +1,23 @@
+from upstream cvs, fixes bug 46889, memory leak in strtotime()
+
+$OpenBSD$
+--- ext/date/lib/parse_date.re.orig Sun Oct 26 11:27:32 2008
++++ ext/date/lib/parse_date.re Fri Dec 19 20:42:27 2008
+@@ -1619,7 +1619,7 @@ timelib_time* timelib_strtotime(char *s, int len, stru
+
+ void timelib_fill_holes(timelib_time *parsed, timelib_time *now, int options)
+ {
+- if (!(options && TIMELIB_OVERRIDE_TIME) && parsed->have_date &&
!parsed->have_time) {
++ if (!(options & TIMELIB_OVERRIDE_TIME) && parsed->have_date &&
!parsed->have_time) {
+ parsed->h = 0;
+ parsed->i = 0;
+ parsed->s = 0;
+@@ -1639,7 +1639,7 @@ void timelib_fill_holes(timelib_time *parsed, timelib_
+ parsed->tz_abbr = now->tz_abbr ? strdup(now->tz_abbr) : NULL;
+ }
+ if (!parsed->tz_info) {
+- parsed->tz_info = now->tz_info ?
timelib_tzinfo_clone(now->tz_info) : NULL;
++ parsed->tz_info = now->tz_info ? (!(options & TIMELIB_NO_CLONE)
? timelib_tzinfo_clone(now->tz_info) : now->tz_info) : NULL;
+ }
+ if (parsed->zone_type == 0 && now->zone_type != 0) {
+ parsed->zone_type = now->zone_type;
Index: core/patches/patch-ext_date_lib_timelib_h
===================================================================
RCS file: core/patches/patch-ext_date_lib_timelib_h
diff -N core/patches/patch-ext_date_lib_timelib_h
--- /dev/null 1 Jan 1970 00:00:00 -0000
+++ core/patches/patch-ext_date_lib_timelib_h 19 Dec 2008 20:49:25 -0000
@@ -0,0 +1,13 @@
+from upstream cvs, fixes bug 46889, memory leak in strtotime()
+
+$OpenBSD$
+--- ext/date/lib/timelib.h.orig Fri Feb 22 09:48:18 2008
++++ ext/date/lib/timelib.h Fri Dec 19 20:42:27 2008
+@@ -28,6 +28,7 @@
+
+ #define TIMELIB_NONE 0x00
+ #define TIMELIB_OVERRIDE_TIME 0x01
++#define TIMELIB_NO_CLONE 0x02
+
+ #define TIMELIB_SPECIAL_WEEKDAY 0x01
+
Index: core/patches/patch-ext_date_php_date_c
===================================================================
RCS file: core/patches/patch-ext_date_php_date_c
diff -N core/patches/patch-ext_date_php_date_c
--- /dev/null 1 Jan 1970 00:00:00 -0000
+++ core/patches/patch-ext_date_php_date_c 19 Dec 2008 20:49:25 -0000
@@ -0,0 +1,14 @@
+from upstream cvs, fixes bug 46889, memory leak in strtotime()
+
+$OpenBSD$
+--- ext/date/php_date.c.orig Tue Dec 2 18:01:57 2008
++++ ext/date/php_date.c Fri Dec 19 20:42:27 2008
+@@ -1143,7 +1143,7 @@ PHP_FUNCTION(strtotime)
+ t = timelib_strtotime(times, time_len, &error, DATE_TIMEZONEDB);
+ error1 = error->error_count;
+ timelib_error_container_dtor(error);
+- timelib_fill_holes(t, now, 0);
++ timelib_fill_holes(t, now, TIMELIB_NO_CLONE);
+ timelib_update_ts(t, tzi);
+ ts = timelib_date_to_int(t, &error2);
+