PHP 5.2.8 broke strtotime (making it leak memory badly, very obvious to
cacti users): add a patch from the upstream repository to fix this. Thanks Steven Surdock for reporting the problem and testing this diff (and similar patches sent by William Yodlowsky). While there, remove a zero-byte patch that crept in before. ok robert@
This commit is contained in:
parent
45a0f3aff7
commit
1ae3b7fdf6
@ -1,10 +1,10 @@
|
||||
# $OpenBSD: Makefile,v 1.39 2008/12/09 21:52:31 robert Exp $
|
||||
# $OpenBSD: Makefile,v 1.40 2008/12/20 21:35:38 sthen Exp $
|
||||
|
||||
COMMENT-main= server-side HTML-embedded scripting language
|
||||
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
|
||||
|
29
www/php5/core/patches/patch-ext_date_lib_parse_date_c
Normal file
29
www/php5/core/patches/patch-ext_date_lib_parse_date_c
Normal file
@ -0,0 +1,29 @@
|
||||
from upstream cvs, fixes bug 46889, memory leak in strtotime()
|
||||
|
||||
$OpenBSD: patch-ext_date_lib_parse_date_c,v 1.1 2008/12/20 21:35:38 sthen Exp $
|
||||
--- 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;
|
23
www/php5/core/patches/patch-ext_date_lib_parse_date_re
Normal file
23
www/php5/core/patches/patch-ext_date_lib_parse_date_re
Normal file
@ -0,0 +1,23 @@
|
||||
from upstream cvs, fixes bug 46889, memory leak in strtotime()
|
||||
|
||||
$OpenBSD: patch-ext_date_lib_parse_date_re,v 1.1 2008/12/20 21:35:38 sthen Exp $
|
||||
--- 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;
|
13
www/php5/core/patches/patch-ext_date_lib_timelib_h
Normal file
13
www/php5/core/patches/patch-ext_date_lib_timelib_h
Normal file
@ -0,0 +1,13 @@
|
||||
from upstream cvs, fixes bug 46889, memory leak in strtotime()
|
||||
|
||||
$OpenBSD: patch-ext_date_lib_timelib_h,v 1.1 2008/12/20 21:35:38 sthen Exp $
|
||||
--- 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
|
||||
|
14
www/php5/core/patches/patch-ext_date_php_date_c
Normal file
14
www/php5/core/patches/patch-ext_date_php_date_c
Normal file
@ -0,0 +1,14 @@
|
||||
from upstream cvs, fixes bug 46889, memory leak in strtotime()
|
||||
|
||||
$OpenBSD: patch-ext_date_php_date_c,v 1.1 2008/12/20 21:35:38 sthen Exp $
|
||||
--- 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);
|
||||
|
Loading…
Reference in New Issue
Block a user