usr/src/cmd/php5/patches/17_php_17026033.patch
author Jon Tibble <meths@btinternet.com>
Sun, 01 Sep 2013 18:44:44 +0100
branchoi_151a
changeset 239 c26ca4f9158b
permissions -rw-r--r--
Pull Oracle PHP 5.2 patches
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
239
c26ca4f9158b Pull Oracle PHP 5.2 patches
Jon Tibble <meths@btinternet.com>
parents:
diff changeset
     1
From
c26ca4f9158b Pull Oracle PHP 5.2 patches
Jon Tibble <meths@btinternet.com>
parents:
diff changeset
     2
http://git.php.net/?p=php-src.git;a=commitdiff;h=4828f7343b3f31d914f4d4a5545865b8a19f7fb6
c26ca4f9158b Pull Oracle PHP 5.2 patches
Jon Tibble <meths@btinternet.com>
parents:
diff changeset
     3
Integer overflow in SndToJewish leads to php hang
c26ca4f9158b Pull Oracle PHP 5.2 patches
Jon Tibble <meths@btinternet.com>
parents:
diff changeset
     4
and
c26ca4f9158b Pull Oracle PHP 5.2 patches
Jon Tibble <meths@btinternet.com>
parents:
diff changeset
     5
http://git.php.net/?p=php-src.git;a=commitdiff;h=c50cef1dc54ffd1d0fb71d1afb8b2c3cb3c5b6ef
c26ca4f9158b Pull Oracle PHP 5.2 patches
Jon Tibble <meths@btinternet.com>
parents:
diff changeset
     6
Fixed bug #64895 Integer overflow in SndToJewish
c26ca4f9158b Pull Oracle PHP 5.2 patches
Jon Tibble <meths@btinternet.com>
parents:
diff changeset
     7
c26ca4f9158b Pull Oracle PHP 5.2 patches
Jon Tibble <meths@btinternet.com>
parents:
diff changeset
     8
CVE-2013-2110 - use correct formula to calculate string size
c26ca4f9158b Pull Oracle PHP 5.2 patches
Jon Tibble <meths@btinternet.com>
parents:
diff changeset
     9
does NOT apply because no such function to patch.
c26ca4f9158b Pull Oracle PHP 5.2 patches
Jon Tibble <meths@btinternet.com>
parents:
diff changeset
    10
c26ca4f9158b Pull Oracle PHP 5.2 patches
Jon Tibble <meths@btinternet.com>
parents:
diff changeset
    11
--- php-5.2.17/ext/calendar/jewish.c_orig	2003-03-22 17:44:58.000000000 -0800
c26ca4f9158b Pull Oracle PHP 5.2 patches
Jon Tibble <meths@btinternet.com>
parents:
diff changeset
    12
+++ php-5.2.17/ext/calendar/jewish.c	2013-07-01 15:33:18.280118195 -0700
c26ca4f9158b Pull Oracle PHP 5.2 patches
Jon Tibble <meths@btinternet.com>
parents:
diff changeset
    13
@@ -272,6 +272,7 @@
c26ca4f9158b Pull Oracle PHP 5.2 patches
Jon Tibble <meths@btinternet.com>
parents:
diff changeset
    14
 #define HALAKIM_PER_METONIC_CYCLE (HALAKIM_PER_LUNAR_CYCLE * (12 * 19 + 7))
c26ca4f9158b Pull Oracle PHP 5.2 patches
Jon Tibble <meths@btinternet.com>
parents:
diff changeset
    15
 
c26ca4f9158b Pull Oracle PHP 5.2 patches
Jon Tibble <meths@btinternet.com>
parents:
diff changeset
    16
 #define JEWISH_SDN_OFFSET 347997
c26ca4f9158b Pull Oracle PHP 5.2 patches
Jon Tibble <meths@btinternet.com>
parents:
diff changeset
    17
+#define JEWISH_SDN_MAX 324542846L /* 12/13/887605, greater value raises interger overflow */
c26ca4f9158b Pull Oracle PHP 5.2 patches
Jon Tibble <meths@btinternet.com>
parents:
diff changeset
    18
 #define NEW_MOON_OF_CREATION 31524
c26ca4f9158b Pull Oracle PHP 5.2 patches
Jon Tibble <meths@btinternet.com>
parents:
diff changeset
    19
 
c26ca4f9158b Pull Oracle PHP 5.2 patches
Jon Tibble <meths@btinternet.com>
parents:
diff changeset
    20
 #define SUNDAY    0
c26ca4f9158b Pull Oracle PHP 5.2 patches
Jon Tibble <meths@btinternet.com>
parents:
diff changeset
    21
@@ -519,7 +520,7 @@
c26ca4f9158b Pull Oracle PHP 5.2 patches
Jon Tibble <meths@btinternet.com>
parents:
diff changeset
    22
 	int tishri1After;
c26ca4f9158b Pull Oracle PHP 5.2 patches
Jon Tibble <meths@btinternet.com>
parents:
diff changeset
    23
 	int yearLength;
c26ca4f9158b Pull Oracle PHP 5.2 patches
Jon Tibble <meths@btinternet.com>
parents:
diff changeset
    24
 
c26ca4f9158b Pull Oracle PHP 5.2 patches
Jon Tibble <meths@btinternet.com>
parents:
diff changeset
    25
-	if (sdn <= JEWISH_SDN_OFFSET) {
c26ca4f9158b Pull Oracle PHP 5.2 patches
Jon Tibble <meths@btinternet.com>
parents:
diff changeset
    26
+	if (sdn <= JEWISH_SDN_OFFSET || sdn > JEWISH_SDN_MAX) {
c26ca4f9158b Pull Oracle PHP 5.2 patches
Jon Tibble <meths@btinternet.com>
parents:
diff changeset
    27
 		*pYear = 0;
c26ca4f9158b Pull Oracle PHP 5.2 patches
Jon Tibble <meths@btinternet.com>
parents:
diff changeset
    28
 		*pMonth = 0;
c26ca4f9158b Pull Oracle PHP 5.2 patches
Jon Tibble <meths@btinternet.com>
parents:
diff changeset
    29
 		*pDay = 0;
c26ca4f9158b Pull Oracle PHP 5.2 patches
Jon Tibble <meths@btinternet.com>
parents:
diff changeset
    30
c26ca4f9158b Pull Oracle PHP 5.2 patches
Jon Tibble <meths@btinternet.com>
parents:
diff changeset
    31
c26ca4f9158b Pull Oracle PHP 5.2 patches
Jon Tibble <meths@btinternet.com>
parents:
diff changeset
    32
--- php-5.2.17/ext/calendar/tests/jdtojewish64.phpt_orig	2013-07-01 15:41:34.918645609 -0700
c26ca4f9158b Pull Oracle PHP 5.2 patches
Jon Tibble <meths@btinternet.com>
parents:
diff changeset
    33
+++ php-5.2.17/ext/calendar/tests/jdtojewish64.phpt	2013-07-01 15:37:34.054921308 -0700
c26ca4f9158b Pull Oracle PHP 5.2 patches
Jon Tibble <meths@btinternet.com>
parents:
diff changeset
    34
@@ -0,0 +1,19 @@
c26ca4f9158b Pull Oracle PHP 5.2 patches
Jon Tibble <meths@btinternet.com>
parents:
diff changeset
    35
+--TEST--
c26ca4f9158b Pull Oracle PHP 5.2 patches
Jon Tibble <meths@btinternet.com>
parents:
diff changeset
    36
+Bug #64895: Integer overflow in SndToJewish
c26ca4f9158b Pull Oracle PHP 5.2 patches
Jon Tibble <meths@btinternet.com>
parents:
diff changeset
    37
+--SKIPIF--
c26ca4f9158b Pull Oracle PHP 5.2 patches
Jon Tibble <meths@btinternet.com>
parents:
diff changeset
    38
+<?php 
c26ca4f9158b Pull Oracle PHP 5.2 patches
Jon Tibble <meths@btinternet.com>
parents:
diff changeset
    39
+include 'skipif.inc';
c26ca4f9158b Pull Oracle PHP 5.2 patches
Jon Tibble <meths@btinternet.com>
parents:
diff changeset
    40
+if (PHP_INT_SIZE == 4) {
c26ca4f9158b Pull Oracle PHP 5.2 patches
Jon Tibble <meths@btinternet.com>
parents:
diff changeset
    41
+        die("skip this test is for 64bit platform only");
c26ca4f9158b Pull Oracle PHP 5.2 patches
Jon Tibble <meths@btinternet.com>
parents:
diff changeset
    42
+}
c26ca4f9158b Pull Oracle PHP 5.2 patches
Jon Tibble <meths@btinternet.com>
parents:
diff changeset
    43
+?>
c26ca4f9158b Pull Oracle PHP 5.2 patches
Jon Tibble <meths@btinternet.com>
parents:
diff changeset
    44
+--FILE--
c26ca4f9158b Pull Oracle PHP 5.2 patches
Jon Tibble <meths@btinternet.com>
parents:
diff changeset
    45
+<?php
c26ca4f9158b Pull Oracle PHP 5.2 patches
Jon Tibble <meths@btinternet.com>
parents:
diff changeset
    46
+$a = array(38245310, 324542846, 324542847, 9223372036854743639);
c26ca4f9158b Pull Oracle PHP 5.2 patches
Jon Tibble <meths@btinternet.com>
parents:
diff changeset
    47
+
c26ca4f9158b Pull Oracle PHP 5.2 patches
Jon Tibble <meths@btinternet.com>
parents:
diff changeset
    48
+foreach ($a as $x) var_dump(jdtojewish($x));
c26ca4f9158b Pull Oracle PHP 5.2 patches
Jon Tibble <meths@btinternet.com>
parents:
diff changeset
    49
+--EXPECTF--
c26ca4f9158b Pull Oracle PHP 5.2 patches
Jon Tibble <meths@btinternet.com>
parents:
diff changeset
    50
+string(11) "2/22/103759"
c26ca4f9158b Pull Oracle PHP 5.2 patches
Jon Tibble <meths@btinternet.com>
parents:
diff changeset
    51
+string(12) "12/13/887605"
c26ca4f9158b Pull Oracle PHP 5.2 patches
Jon Tibble <meths@btinternet.com>
parents:
diff changeset
    52
+string(5) "0/0/0"
c26ca4f9158b Pull Oracle PHP 5.2 patches
Jon Tibble <meths@btinternet.com>
parents:
diff changeset
    53
+string(5) "0/0/0"
c26ca4f9158b Pull Oracle PHP 5.2 patches
Jon Tibble <meths@btinternet.com>
parents:
diff changeset
    54