summaryrefslogtreecommitdiffstats
path: root/php-bug66060.patch
blob: 553f708191b5a513b74281d834a7d738f4f34d47 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
From 12fe4e90be7bfa2a763197079f68f5568a14e071 Mon Sep 17 00:00:00 2001
From: Remi Collet <remi@php.net>
Date: Wed, 27 Nov 2013 11:13:16 +0100
Subject: [PATCH] Fixed bug #66060 (Heap buffer over-read in DateInterval)

---
 NEWS                                | 3 +++
 ext/date/lib/parse_iso_intervals.c  | 4 ++--
 ext/date/lib/parse_iso_intervals.re | 2 +-
 3 files changed, 6 insertions(+), 3 deletions(-)

diff --git a/ext/date/lib/parse_iso_intervals.c b/ext/date/lib/parse_iso_intervals.c
index bd1ad05..480ea38 100644
--- a/ext/date/lib/parse_iso_intervals.c
+++ b/ext/date/lib/parse_iso_intervals.c
@@ -380,7 +380,7 @@ yy6:
 					break;
 			}
 			ptr++;
-		} while (*ptr);
+		} while (!s->errors->error_count && *ptr);
 		s->have_period = 1;
 		TIMELIB_DEINIT;
 		return TIMELIB_PERIOD;
diff --git a/ext/date/lib/parse_iso_intervals.re b/ext/date/lib/parse_iso_intervals.re
index 56aa34d..c5e9f67 100644
--- a/ext/date/lib/parse_iso_intervals.re
+++ b/ext/date/lib/parse_iso_intervals.re
@@ -348,7 +348,7 @@ isoweek          = year4 "-"? "W" weekofyear;
 					break;
 			}
 			ptr++;
-		} while (*ptr);
+		} while (!s->errors->error_count && *ptr);
 		s->have_period = 1;
 		TIMELIB_DEINIT;
 		return TIMELIB_PERIOD;
-- 
1.8.4.3