summaryrefslogtreecommitdiff
path: root/debian/patches/0044-xmlschemastypes-Fix-potential-array-overflow.patch
diff options
context:
space:
mode:
Diffstat (limited to 'debian/patches/0044-xmlschemastypes-Fix-potential-array-overflow.patch')
-rw-r--r--debian/patches/0044-xmlschemastypes-Fix-potential-array-overflow.patch28
1 files changed, 28 insertions, 0 deletions
diff --git a/debian/patches/0044-xmlschemastypes-Fix-potential-array-overflow.patch b/debian/patches/0044-xmlschemastypes-Fix-potential-array-overflow.patch
new file mode 100644
index 0000000..b2824e5
--- /dev/null
+++ b/debian/patches/0044-xmlschemastypes-Fix-potential-array-overflow.patch
@@ -0,0 +1,28 @@
+From: Philip Withnall <philip.withnall@collabora.co.uk>
+Date: Fri, 20 Jun 2014 21:37:21 +0100
+Subject: xmlschemastypes: Fix potential array overflow
+
+The year and month need validating before being put into the
+MAX_DAYINMONTH macro.
+
+Coverity issue: #60436
+
+https://bugzilla.gnome.org/show_bug.cgi?id=731990
+---
+ xmlschemastypes.c | 3 ++-
+ 1 file changed, 2 insertions(+), 1 deletion(-)
+
+diff --git a/xmlschemastypes.c b/xmlschemastypes.c
+index 7e1d54a..6e8bb70 100644
+--- a/xmlschemastypes.c
++++ b/xmlschemastypes.c
+@@ -3854,7 +3854,8 @@ _xmlSchemaDateAdd (xmlSchemaValPtr dt, xmlSchemaValPtr dur)
+ tmon = 12;
+ tempdays += MAX_DAYINMONTH(tyr, tmon);
+ carry = -1;
+- } else if (tempdays > (long) MAX_DAYINMONTH(r->year, r->mon)) {
++ } else if (VALID_YEAR(r->year) && VALID_MONTH(r->mon) &&
++ tempdays > (long) MAX_DAYINMONTH(r->year, r->mon)) {
+ tempdays = tempdays - MAX_DAYINMONTH(r->year, r->mon);
+ carry = 1;
+ } else