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);
+ 

Reply via email to