Compare commits

...
128 Commits
Author SHA1 Message Date
Stanislav Malyshev 3548b2e2c5 5.4.6 2012-08-14 21:26:05 -07:00
Stanislav Malyshev 1fc3514734 5.4.6rc1 2012-07-31 21:58:45 -07:00
Stanislav Malyshev ff729aabf7 sync NEWS 2012-07-31 21:51:46 -07:00
Stanislav Malyshev 4d6bae896d skip tests if ibase not present 2012-07-31 21:45:04 -07:00
Xinchen Hui 0988ae3c43 Implemented FR #62700 (have the console output 'Listening on http://localhost:8000') 2012-07-31 22:42:28 +08:00
Xinchen Hui 572d6437bc expect pass for 5.4 2012-07-31 10:51:18 +08:00
Xinchen Hui c730329bb0 Merge branch 'PHP-5.3' into PHP-5.4 2012-07-31 10:51:04 +08:00
Xinchen Hui 645f84e41b Test for bug #62680 2012-07-31 10:49:13 +08:00
Gustavo André dos Santos Lopes 86ca788cc7 Fix test title and limit it to ICU >= 4.8 2012-07-30 11:04:10 +02:00
Gustavo André dos Santos Lopes f8e693248f Remove executable bit from files 2012-07-30 10:32:27 +02:00
Gustavo André dos Santos Lopes dec7bad635 Merge branch '5.3' into 5.4
* 5.3:
  Limit test to ICU 49
  Remove executable bit from files
2012-07-30 10:31:10 +02:00
Gustavo André dos Santos Lopes 7e3e1837c8 Limit test to ICU 49 2012-07-30 10:27:41 +02:00
Gustavo André dos Santos Lopes 9762609cec Remove executable bit from files 2012-07-30 10:25:17 +02:00
Xinchen Hui e0c014dead Merge branch 'PHP-5.3' into PHP-5.4 2012-07-29 14:31:04 +08:00
Xinchen Hui f419d614ba Sike test while there is no zend mm max_size guard 2012-07-29 14:30:01 +08:00
Xinchen Hui c6ad98975e Merge branch 'PHP-5.3' into PHP-5.4
* PHP-5.3:
  Skip test while zend mm is disabled
2012-07-29 13:26:05 +08:00
Xinchen Hui 880a6cee00 Skip test while zend mm is disabled 2012-07-29 13:25:31 +08:00
Xinchen Hui 11e84180ef Merge branch 'PHP-5.3' into PHP-5.4
* PHP-5.3:
  Skip test while zend_mm is disabled
2012-07-29 12:19:28 +08:00
Xinchen Hui 14cebefb05 Merge branch 'PHP-5.3' of git.php.net:php-src into PHP-5.3 2012-07-29 12:18:07 +08:00
Xinchen Hui 015ee3b2c8 Skip test while zend_mm is disabled 2012-07-29 12:17:43 +08:00
Felipe Pena b26749b4e9 Merge branch 'PHP-5.3' into PHP-5.4
* PHP-5.3:
  - Fixed bug #57933 (Wrong table type used in phpinfo output) patch by: selsky at columbia dot edu
2012-07-28 19:05:46 -03:00
Felipe Pena 068fc008c6 - Fixed bug #57933 (Wrong table type used in phpinfo output) patch by: selsky at columbia dot edu 2012-07-28 19:05:13 -03:00
Xinchen Hui b7d76b41e0 Merge branch 'PHP-5.3' into PHP-5.4 2012-07-28 17:01:29 +08:00
Xinchen Hui b477a84026 Fixed bug #60194 for eavl
same reason here
2012-07-28 17:00:05 +08:00
Xinchen Hui 61d80d75ba Merge branch 'PHP-5.3' into PHP-5.4 2012-07-28 00:54:17 +08:00
Xinchen Hui ef7286a42f Fixed bug #60194 (--with-zend-multibyte and --enable-debug reports LEAK with run-test.php)
It's not a big deal, just because lexer will read the char after cursor before leaving
2012-07-28 00:50:45 +08:00
Gustavo André dos Santos Lopes ccffec74d0 Fix bug #62651: source level BC break
Break for C++ extensions that don't wrap the includes of PHP libraries
in extern "C" {.
2012-07-26 23:37:02 +02:00
Stanislav Malyshev 7d890eef82 update 5.4.5 date 2012-07-25 23:46:15 -07:00
Xinchen Hui 302ad0d648 Fix test, committed in wrong folder 2012-07-26 13:57:04 +08:00
Xinchen Hui eae0610042 Fixed bug #62653: (unset($array[$float]) causes a crash)
the reason why jpauli and I can not reproduce is (it's silly):
I typo "USE_ZEND_ALLOC *&&* valgrind" at the first time, then I always ctrl+r
and jpauli copied my command from the pastbin :)

thanks
2012-07-26 13:53:06 +08:00
Xinchen Hui ba27e0888a Merge branch 'PHP-5.4' of git.php.net:php-src into PHP-5.4 2012-07-26 12:42:33 +08:00
Xinchen Hui b4b3a65f55 Fixed bug #62661 (Interactive php-cli crashes if include() is used in auto_prepend_file) 2012-07-26 12:40:47 +08:00
Rasmus Lerdorf 5799ebdb0c Fix bug #62654 2012-07-25 02:03:47 +02:00
Rasmus Lerdorf 5f224412fa Fix bug #62654 2012-07-24 16:28:49 -07:00
Felipe Pena 54cba5aa91 - Fixed ZTS build 2012-07-24 10:02:32 -03:00
Florian Anderiasch f2cef8afc4 Updated NES 2012-07-24 14:46:19 +02:00
Florian Anderiasch ddc8d16245 Add syslog support to mail.log #62356
Patch by Michael Orlitzky
2012-07-24 14:31:30 +02:00
Xinchen Hui 9fe8c58130 binary compatibility 2012-07-24 14:45:13 +08:00
Xinchen Hui 4c1e2bbd6f Re-fix bug #55544 2012-07-24 14:43:53 +08:00
Xinchen Hui 2abc4c2f6f Merge branch 'PHP-5.4' of git.php.net:php-src into PHP-5.4 2012-07-24 13:38:11 +08:00
Xinchen Hui c20b2ab0bd folders 2012-07-24 13:37:44 +08:00
Gustavo André dos Santos Lopes f3f824823d Duplicate test for ICU 49
The output in ICU < 49 actually seems wrong here; ICU 49 seems to
fix the data.
2012-07-23 02:08:12 +02:00
Johannes Schlüter 860b3ffe75 Fix Bug #62612 readline extension compilation fails 2012-07-22 23:28:32 +02:00
Johannes Schlüter 254d299d07 Merge branch 'PHP-5.3' into PHP-5.4 2012-07-22 22:46:09 +02:00
Johannes Schlüter ffa8461bfe merge 5.3.15 NEWS 2012-07-22 22:45:39 +02:00
Xinchen Hui a88eca53f7 Improve error message for ssl request 2012-07-22 19:20:23 +08:00
Xinchen Hui fd50bf2085 Merge branch 'PHP-5.3' into PHP-5.4
* PHP-5.3:
  missed the test script
2012-07-21 23:33:24 +08:00
Xinchen Hui 777b6679a4 missed the test script 2012-07-21 23:30:32 +08:00
Xinchen Hui 52d8779c43 Merge branch 'PHP-5.3' into PHP-5.4
* PHP-5.3:
  Fix test failed
  Fixed bug #62616 (ArrayIterator::count() from IteratorIterator instance gives Segmentation fault)
2012-07-21 23:27:52 +08:00
Xinchen Hui ead076bac6 Fix test failed 2012-07-21 23:27:09 +08:00
Xinchen Hui cc30524c89 Fixed bug #62616 (ArrayIterator::count() from IteratorIterator instance gives Segmentation fault) 2012-07-21 23:26:18 +08:00
Xinchen Hui 0c996613c0 Fixed bug #62616 (ArrayIterator::count() from IteratorIterator instance gives Segmentation fault) 2012-07-21 22:45:16 +08:00
Xinchen Hui a6f1533789 Fixed bug #55544 (ob_gzhandler always conflicts with zlib.output_compression) 2012-07-21 02:57:36 +08:00
Xinchen Hui a2a1cef1a2 Merge branch 'PHP-5.3' into PHP-5.4 2012-07-21 00:47:54 +08:00
Xinchen Hui 683b4f7a2b merge 9eb5cb6571 to 5.3 2012-07-21 00:46:32 +08:00
Xinchen Hui b81b8bf77d this initialization is unnecessary anymore after commit 2d9d2cadad 2012-07-18 21:45:37 +08:00
Xinchen Hui 2d9d2cadad Fixed bug #62597 (segfault in php_stream_wrapper_log_error with ZTS build) 2012-07-18 20:16:27 +08:00
Xinchen Hui 8f89cfb548 Fix test (no charset outputed) 2012-07-18 19:50:30 +08:00
Xinchen Hui 11d0558928 skip for ZTS 2012-07-18 19:47:54 +08:00
Xinchen Hui 282a6659aa fix test (dos2unix, typo) 2012-07-18 19:25:22 +08:00
Xinchen Hui 41a9c681a0 fix test, the key may be a float value 2012-07-18 19:21:25 +08:00
Xinchen Hui 25be12a3bc Fixed bug #62594 (segfault in mysqlnd_res_meta::set_mode) 2012-07-18 19:06:27 +08:00
Xinchen Hui c7c939b5d8 Bug doesn't exists in any release 2012-07-18 18:00:09 +08:00
Gustavo André dos Santos Lopes c7614a8c19 NEWS for b47d6b32 2012-07-17 23:12:25 +02:00
Reeze Xia b47d6b32ba Fix test fails: ext/standard/tests/general_functions/bug27678.phpt
After commit 3e62aae1, number_format() returns string with length,
but _php_math_number_format_ex_len() didn't set string length
on nan and inf. This cause segfault when destruct the return value.
2012-07-17 23:08:11 +02:00
Anatoliy Belsky d0e58bf6eb Merge branch 'PHP-5.3' into PHP-5.4
* PHP-5.3:
  Fix for bug #62379 was missing in 5.3
2012-07-17 17:52:25 +02:00
Anatoliy Belsky bd39495332 Fix for bug #62379 was missing in 5.3 2012-07-17 17:50:05 +02:00
Hannes Magnusson 5cf4f7395b Merge branch 'PHP-5.3' into PHP-5.4
* PHP-5.3:
  Do not unload shared extensions when checking for leaks
2012-07-17 10:05:42 +01:00
Hannes Magnusson 88f7f3c00f Do not unload shared extensions when checking for leaks 2012-07-17 10:04:56 +01:00
Xinchen Hui c8f285d190 Update libmagic.patch 2012-07-15 18:25:58 +08:00
Stanislav Malyshev f4809424cd Merge branch 'pull-request/96' into PHP-5.4
* pull-request/96:
  Implemented FR #61602 Allow access to name of constant used as default value
2012-07-14 23:08:50 -07:00
Stanislav Malyshev 55dbd8cf46 update NEWS 2012-07-14 22:41:08 -07:00
Stanislav Malyshev a5d45bae85 Fixed bug #61527 (Recursive/ArrayIterator gives misleading notice when array empty or moved to the end) 2012-07-14 22:34:28 -07:00
Stanislav Malyshev cfdccdb805 Merge branch 'PHP-5.3' into PHP-5.4
* PHP-5.3:
  Typofix in test-description
2012-07-14 22:08:19 -07:00
Jille Timmermans 86b4252c8e Typofix in test-description 2012-07-14 22:07:50 -07:00
donnut 53ba768ed8 removed unneccesary arrat and ini settings 2012-07-14 19:22:03 -07:00
donnut 4539d799bb addition SplFileObject tests 2012-07-14 19:21:50 -07:00
donnut 2cb7a678a1 new tests from PHP TestFest June 2012 2012-07-14 19:21:34 -07:00
Adam Gegotek 8b70dd202a Fixing up closing tag 2012-07-14 18:59:04 -07:00
Adam Gegotek 152f73f92a Testing variation on input parameters of http_build_query() function 2012-07-14 18:58:52 -07:00
Stanislav Malyshev 1916bb223e Merge branch 'pull-request/91' into PHP-5.4
* pull-request/91:
  Fixed bug #61964 (finfo_open with directory cause invalid free)
2012-07-14 18:52:24 -07:00
Felipe Pena 3728e50e9f Merge branch 'PHP-5.3' into PHP-5.4
* PHP-5.3:
  - Fixed bug #62525 (sigabrt while converting floating point to string)
2012-07-14 15:15:24 -03:00
Felipe Pena 63f3962a90 - Fixed bug #62525 (sigabrt while converting floating point to string) 2012-07-14 15:15:11 -03:00
Felipe Pena d640e446ab - Fixed conflict 2012-07-14 13:16:35 -03:00
Felipe Pena 864575251a - Fixed memory leak when extending DOMXPath 2012-07-14 13:13:31 -03:00
Felipe Pena 9c28393067 - BFN 2012-07-14 12:27:44 -03:00
Felipe Pena 0bff7cfadd - Fixed bug #62565 (Crashes due non-initialized internal properties_table) 2012-07-14 12:16:16 -03:00
Felipe Pena 8b093dee21 - Fixed bug #62564 (Extending MessageFormatter and adding property causes crash) 2012-07-14 11:37:08 -03:00
Matt Ficken 10251b20c3 Fixed bug #62379 failing ODBC long column functionality 2012-07-13 15:34:00 +02:00
Anatoliy Belsky d9d21b2037 Merge branch 'PHP-5.3' into PHP-5.4
* PHP-5.3:
  Fixed bug #61677 ext\zlib\tests\bug_52944.phpt fails
2012-07-13 11:46:14 +02:00
Anatoliy Belsky 02b8362ec2 Fixed bug #61677 ext\zlib\tests\bug_52944.phpt fails
The test is known to fail on windows with zlib version < 1.2.7 (current dep is 1.2.5),
with 1.2.7 it works. As it's primarily a zlib 1.2.5 issue on windows, skip it for now.
2012-07-13 11:39:57 +02:00
Anatoliy Belsky cf91b163e1 fixed the test for warnings changed 2012-07-12 18:24:38 +02:00
Anatoliy Belsky ec7e479562 reverted news about #62477 2012-07-12 10:57:56 +02:00
Anatoliy Belsky 86428169d3 Merge branch 'PHP-5.3' into PHP-5.4
* PHP-5.3:
  reverted changes for #62477
2012-07-12 10:57:26 +02:00
Anatoliy Belsky ad7eeba3c1 reverted changes for #62477 2012-07-12 10:54:14 +02:00
Anatoliy Belsky be8f089a13 updated NEWS 2012-07-11 22:37:39 +02:00
Anatoliy Belsky 899c8f485a Merge branch 'PHP-5.3' into PHP-5.4
* PHP-5.3:
  updated NEWS
2012-07-11 22:35:00 +02:00
Anatoliy Belsky 896d0fcd41 updated NEWS 2012-07-11 22:33:42 +02:00
Anatoliy Belsky 40f8010a13 Merge branch 'PHP-5.3' into PHP-5.4
* PHP-5.3:
  Fixed bug #62477 LimitIterator int overflow
2012-07-11 22:29:45 +02:00
Anatoliy Belsky b383ddf1e5 Fixed bug #62477 LimitIterator int overflow 2012-07-11 22:25:31 +02:00
Xinchen Hui 977ce78d82 Merge branch 'PHP-5.3' into PHP-5.4 2012-07-10 18:45:16 +08:00
Xinchen Hui bcf5853eaa Fixed Bug #62500 (Segfault in DateInterval class when extended) 2012-07-10 18:43:11 +08:00
Anatoliy Belsky 97b8798520 Fixed test bug #62312 (warnings changed one more time) 2012-07-09 18:21:51 +02:00
andrey 66e1ac23c1 Merge branch 'PHP-5.4' of ssh://git.php.net/php-src into PHP-5.4 2012-07-09 17:59:42 +03:00
andrey 555db7dc4e fix valgrind warning 2012-07-09 17:59:23 +03:00
Anatoliy Belsky 2032470e41 fixed #62433 test for win 2012-07-09 12:42:10 +02:00
Xinchen Hui 4323a7aced update NEWS 2012-07-09 08:44:59 +08:00
Xinchen Hui 0398cc22a9 Merge branch 'PHP-5.3' into PHP-5.4
* PHP-5.3:
  Fixed bug #62499 (curl_setopt($ch, CURLOPT_COOKIEFILE, "") returns false)
  appease MSVC (doesnt like unary minus of unsigned ints)

Conflicts:
	ext/curl/interface.c
2012-07-09 08:38:03 +08:00
Xinchen Hui c819cf9d6b Fixed bug #62499 (curl_setopt($ch, CURLOPT_COOKIEFILE, "") returns false)
this bc break is caused by the fix for #61948
2012-07-09 08:32:40 +08:00
Nuno Lopes b2b018d5f7 appease MSVC (doesnt like unary minus of unsigned ints) 2012-07-08 15:28:29 -04:00
Nuno Lopes 5910d8d4f4 appease MSVC (doesnt like unary minus of unsigned ints) 2012-07-08 15:21:18 -04:00
Felipe Pena 2019062cfc - Fixed bug #62507 (['REQUEST_TIME'] under mod_php5 returns miliseconds instead of seconds) 2012-07-08 14:05:28 -03:00
Xinchen Hui e3b9b1e6dc Fixed Bug #62500 (Segfault in DateInterval class when extended)
This fix also fixed bug #62508  (Segfault while access a non-string
property of DateInterval object)
2012-07-09 00:25:48 +08:00
Stanislav Malyshev a213c10ef2 Merge branch 'pull-request/112' into PHP-5.4
* pull-request/112:
  Added in NEWS and UPGRADING for feature 55218
  Adding in test for feature 55218
  Implements feature 55218
2012-07-07 12:51:26 -07:00
Lonny Kapelushnik f0df7dbc8f Added in NEWS and UPGRADING for feature 55218 2012-07-07 09:10:08 -04:00
Anthony Ferrara 79ed100c19 Merge branch 'PHP-5.3' into PHP-5.4
* PHP-5.3:
  Fix two issues with run-tests.php
2012-07-06 22:38:15 -04:00
Anthony Ferrara 26b37f1792 Fix two issues with run-tests.php
1. E_STRICT error due to passing return of array_intersect() into reset() directly
2. Details in junit output can produce invalid UTF-8 and XML due to unescaped characters
2012-07-06 22:37:50 -04:00
Nikita Popov 5cf2f87fa7 Merge branch 'PHP-5.3' into PHP-5.4
* PHP-5.3:
  Fix potential integer overflow in nl2br
  Fix potential integer overflow in bin2hex

Conflicts:
	ext/standard/string.c
2012-07-05 20:59:18 +02:00
Nikita Popov 157ddd9577 Fix potential integer overflow in nl2br
The buffer size was calculated manually, thus creating integer overflows
for very large inputs, e.g. nl2br(str_repeat("\n", 613566757)).

The code now uses safe_emalloc, thus making the code throw an error
instead of crashing.
2012-07-05 20:41:54 +02:00
Nikita Popov 88f46b162b Fix potential integer overflow in bin2hex
The code was already using safe_emalloc but did the multiplication in
the first argument, thus making the use of safe_emalloc pretty useless.

The *2 is now moved to the second argument.
2012-07-05 20:14:49 +02:00
Johannes Schlüter 9a38ca8d50 Merge branch 'PHP-5.3' into PHP-5.4 2012-07-05 01:18:57 +02:00
Johannes Schlüter 6b2b195267 This wil be PHP 5.3.16 2012-07-05 01:15:27 +02:00
johannes bcc87ba68e Revert change 3f3ad30c50: There shouldn't be new features in 5.3, especially
not if they aren't in 5.4, too.
2012-07-05 00:55:47 +02:00
Nuno Lopes d80ff39189 fix (signed) integer overflow (part of bug #52550 2012-07-02 01:35:28 -04:00
Lonny Kapelushnik 2178b1d02d Adding in test for feature 55218 2012-06-21 23:21:17 -04:00
Lonny Kapelushnik f1ef8b327f Implements feature 55218
Allows you to recursively check namespaces under a child node
instead of from the root of the XML doc
2012-06-21 22:34:46 -04:00
Reeze Xia 13a9555342 Implemented FR #61602 Allow access to name of constant used as default value
This is an improved commit for FR #61602, this fixed the previous
commit 054f3e3's C99 compiler compatibility issue
2012-05-31 23:31:00 +08:00
Reeze Xia 1d2f619049 Fixed bug #61964 (finfo_open with directory cause invalid free) 2012-05-25 18:55:34 +08:00
311 changed files with 2551 additions and 367 deletions

No files matched your search

+60 -1
View File
@@ -1,6 +1,65 @@
PHP NEWS
|||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
?? ??? 2012, PHP 5.4.5
16 Aug 2012, PHP 5.4.6
- CLI Server:
. Implemented FR #62700 (have the console output 'Listening on
http://localhost:8000'). (pascal.chevrel@free.fr)
- Core:
. Fixed bug #62661 (Interactive php-cli crashes if include() is used in
auto_prepend_file). (Laruence)
. Fixed bug #62653: (unset($array[$float]) causes a crash). (Nikita Popov,
Laruence)
. Fixed bug #62565 (Crashes due non-initialized internal properties_table).
(Felipe)
. Fixed bug #60194 (--with-zend-multibyte and --enable-debug reports LEAK
with run-test.php). (Laruence)
- CURL:
. Fixed bug #62499 (curl_setopt($ch, CURLOPT_COOKIEFILE, "") returns false).
(r.hampartsumyan@gmail.com, Laruence)
- DateTime:
. Fixed Bug #62500 (Segfault in DateInterval class when extended). (Laruence)
- Fileinfo:
. Fixed bug #61964 (finfo_open with directory causes invalid free).
(reeze.xia@gmail.com)
- Intl:
. Fixed bug #62564 (Extending MessageFormatter and adding property causes
crash). (Felipe)
- MySQLnd:
. Fixed bug #62594 (segfault in mysqlnd_res_meta::set_mode). (Laruence)
- readline:
. Fixed bug #62612 (readline extension compilation fails with
sapi/cli/cli.h: No such file). (Johannes)
- Reflection:
. Implemented FR #61602 (Allow access to name of constant used as default
value). (reeze.xia@gmail.com)
- SimpleXML:
. Implemented FR #55218 Get namespaces from current node. (Lonny)
- SPL:
. Fixed bug #62616 (ArrayIterator::count() from IteratorIterator instance
gives Segmentation fault). (Laruence, Gustavo)
. Fixed bug #61527 (ArrayIterator gives misleading notice on next() when
moved to the end). (reeze.xia@gmail.com)
- Streams:
. Fixed bug #62597 (segfault in php_stream_wrapper_log_error with ZTS build).
(Laruence)
- Zlib:
. Fixed bug #55544 (ob_gzhandler always conflicts with
zlib.output_compression). (Laruence)
19 Jul 2012, PHP 5.4.5
- Core:
. Fixed bug #62443 (Crypt SHA256/512 Segfaults With Malformed
+4
View File
@@ -343,6 +343,10 @@ PHP 5.4 UPGRADE NOTES
- Since 5.4.5, resourcebundle_create() accepts null for the first two arguments.
- Since 5.4.6, SimpleXMLElement::getDocNamespaces() has and extra parameter which
allows for toggling if the list of namespaces starts from the document root
or from the node you call the method on
==============================
5. Changes to existing classes
==============================
+6
View File
@@ -5,6 +5,12 @@ Bug #55509 (segfault on x86_64 using more than 2G memory)
if (PHP_INT_SIZE == 4) {
die('skip Not for 32-bits OS');
}
$zend_mm_enabled = getenv("USE_ZEND_ALLOC");
if ($zend_mm_enabled === "0") {
die("skip Zend MM disabled");
}
if (getenv("SKIP_SLOW_TESTS")) die("skip slow test");
// check the available memory
if (PHP_OS == 'Linux') {
+33
View File
@@ -0,0 +1,33 @@
--TEST--
Bug #62653: unset($array[$float]) causes a crash
--FILE--
<?php
$array = array("5"=>"bar");
$foo = "10.0000"; // gettype($foo) = "string"
$foo /= 2; //Makes $foo = 5 but still gettype($foo) = "double"
unset($array[$foo]);
print_r($array);
$array = array("5"=>"bar");
$foo = "5";
unset($array[(float)$foo]);
print_r($array);
$array = array("5"=>"bar");
$foo = "10.0000";
$foo /= 2; //Makes $foo = 5 but still gettype($foo) = "double"
$name = "foo";
unset($array[$$name]);
print_r($array);
?>
--EXPECT--
Array
(
)
Array
(
)
Array
(
)
+11
View File
@@ -0,0 +1,11 @@
--TEST--
Bug #62680 (Function isset() throws fatal error on set array if non-existent key depth >= 3)
--FILE--
<?php
$array = array("");
var_dump(isset($array[0]["a"]["b"]));
var_dump(isset($array[0]["a"]["b"]["c"]));
?>
--EXPECT--
bool(false)
bool(false)
+12
View File
@@ -1261,6 +1261,7 @@ ZEND_API int zend_execute_scripts(int type TSRMLS_DC, zval **retval, int file_co
zend_file_handle *file_handle;
zend_op_array *orig_op_array = EG(active_op_array);
zval **orig_retval_ptr_ptr = EG(return_value_ptr_ptr);
long orig_interactive = CG(interactive);
va_start(files, file_count);
for (i = 0; i < file_count; i++) {
@@ -1268,6 +1269,15 @@ ZEND_API int zend_execute_scripts(int type TSRMLS_DC, zval **retval, int file_co
if (!file_handle) {
continue;
}
if (orig_interactive) {
if (file_handle->filename[0] != '-' || file_handle->filename[1]) {
CG(interactive) = 0;
} else {
CG(interactive) = 1;
}
}
EG(active_op_array) = zend_compile_file(file_handle, type TSRMLS_CC);
if (file_handle->opened_path) {
int dummy = 1;
@@ -1309,12 +1319,14 @@ ZEND_API int zend_execute_scripts(int type TSRMLS_DC, zval **retval, int file_co
va_end(files);
EG(active_op_array) = orig_op_array;
EG(return_value_ptr_ptr) = orig_retval_ptr_ptr;
CG(interactive) = orig_interactive;
return FAILURE;
}
}
va_end(files);
EG(active_op_array) = orig_op_array;
EG(return_value_ptr_ptr) = orig_retval_ptr_ptr;
CG(interactive) = orig_interactive;
return SUCCESS;
}
+1 -1
View File
@@ -330,7 +330,7 @@ END_EXTERN_C()
if (idx-1 > LONG_MAX) { /* overflow */ \
break; \
} \
idx = -idx; \
idx = 0 - idx; \
} else if (idx > LONG_MAX) { /* overflow */ \
break; \
} \
+2
View File
@@ -23,12 +23,14 @@
#include "zend.h"
BEGIN_EXTERN_C()
ZEND_API extern const char *(*zend_new_interned_string)(const char *str, int len, int free_src TSRMLS_DC);
ZEND_API extern void (*zend_interned_strings_snapshot)(TSRMLS_D);
ZEND_API extern void (*zend_interned_strings_restore)(TSRMLS_D);
void zend_interned_strings_init(TSRMLS_D);
void zend_interned_strings_dtor(TSRMLS_D);
END_EXTERN_C()
#ifndef ZTS
+2 -1
View File
@@ -3947,7 +3947,8 @@ ZEND_VM_HANDLER(75, ZEND_UNSET_DIM, VAR|UNUSED|CV, CONST|TMP|VAR|CV)
switch (Z_TYPE_P(offset)) {
case IS_DOUBLE:
hval = zend_dval_to_lval(Z_DVAL_P(offset));
ZEND_VM_C_GOTO(num_index_dim);
zend_hash_index_del(ht, hval);
break;
case IS_RESOURCE:
case IS_BOOL:
case IS_LONG:
+24 -12
View File
@@ -13917,7 +13917,8 @@ static int ZEND_FASTCALL ZEND_UNSET_DIM_SPEC_VAR_CONST_HANDLER(ZEND_OPCODE_HAND
switch (Z_TYPE_P(offset)) {
case IS_DOUBLE:
hval = zend_dval_to_lval(Z_DVAL_P(offset));
goto num_index_dim;
zend_hash_index_del(ht, hval);
break;
case IS_RESOURCE:
case IS_BOOL:
case IS_LONG:
@@ -15919,7 +15920,8 @@ static int ZEND_FASTCALL ZEND_UNSET_DIM_SPEC_VAR_TMP_HANDLER(ZEND_OPCODE_HANDLE
switch (Z_TYPE_P(offset)) {
case IS_DOUBLE:
hval = zend_dval_to_lval(Z_DVAL_P(offset));
goto num_index_dim;
zend_hash_index_del(ht, hval);
break;
case IS_RESOURCE:
case IS_BOOL:
case IS_LONG:
@@ -18131,7 +18133,8 @@ static int ZEND_FASTCALL ZEND_UNSET_DIM_SPEC_VAR_VAR_HANDLER(ZEND_OPCODE_HANDLE
switch (Z_TYPE_P(offset)) {
case IS_DOUBLE:
hval = zend_dval_to_lval(Z_DVAL_P(offset));
goto num_index_dim;
zend_hash_index_del(ht, hval);
break;
case IS_RESOURCE:
case IS_BOOL:
case IS_LONG:
@@ -21166,7 +21169,8 @@ static int ZEND_FASTCALL ZEND_UNSET_DIM_SPEC_VAR_CV_HANDLER(ZEND_OPCODE_HANDLER
switch (Z_TYPE_P(offset)) {
case IS_DOUBLE:
hval = zend_dval_to_lval(Z_DVAL_P(offset));
goto num_index_dim;
zend_hash_index_del(ht, hval);
break;
case IS_RESOURCE:
case IS_BOOL:
case IS_LONG:
@@ -22504,7 +22508,8 @@ static int ZEND_FASTCALL ZEND_UNSET_DIM_SPEC_UNUSED_CONST_HANDLER(ZEND_OPCODE_H
switch (Z_TYPE_P(offset)) {
case IS_DOUBLE:
hval = zend_dval_to_lval(Z_DVAL_P(offset));
goto num_index_dim;
zend_hash_index_del(ht, hval);
break;
case IS_RESOURCE:
case IS_BOOL:
case IS_LONG:
@@ -23662,7 +23667,8 @@ static int ZEND_FASTCALL ZEND_UNSET_DIM_SPEC_UNUSED_TMP_HANDLER(ZEND_OPCODE_HAN
switch (Z_TYPE_P(offset)) {
case IS_DOUBLE:
hval = zend_dval_to_lval(Z_DVAL_P(offset));
goto num_index_dim;
zend_hash_index_del(ht, hval);
break;
case IS_RESOURCE:
case IS_BOOL:
case IS_LONG:
@@ -24820,7 +24826,8 @@ static int ZEND_FASTCALL ZEND_UNSET_DIM_SPEC_UNUSED_VAR_HANDLER(ZEND_OPCODE_HAN
switch (Z_TYPE_P(offset)) {
case IS_DOUBLE:
hval = zend_dval_to_lval(Z_DVAL_P(offset));
goto num_index_dim;
zend_hash_index_del(ht, hval);
break;
case IS_RESOURCE:
case IS_BOOL:
case IS_LONG:
@@ -26244,7 +26251,8 @@ static int ZEND_FASTCALL ZEND_UNSET_DIM_SPEC_UNUSED_CV_HANDLER(ZEND_OPCODE_HAND
switch (Z_TYPE_P(offset)) {
case IS_DOUBLE:
hval = zend_dval_to_lval(Z_DVAL_P(offset));
goto num_index_dim;
zend_hash_index_del(ht, hval);
break;
case IS_RESOURCE:
case IS_BOOL:
case IS_LONG:
@@ -29498,7 +29506,8 @@ static int ZEND_FASTCALL ZEND_UNSET_DIM_SPEC_CV_CONST_HANDLER(ZEND_OPCODE_HANDL
switch (Z_TYPE_P(offset)) {
case IS_DOUBLE:
hval = zend_dval_to_lval(Z_DVAL_P(offset));
goto num_index_dim;
zend_hash_index_del(ht, hval);
break;
case IS_RESOURCE:
case IS_BOOL:
case IS_LONG:
@@ -31371,7 +31380,8 @@ static int ZEND_FASTCALL ZEND_UNSET_DIM_SPEC_CV_TMP_HANDLER(ZEND_OPCODE_HANDLER
switch (Z_TYPE_P(offset)) {
case IS_DOUBLE:
hval = zend_dval_to_lval(Z_DVAL_P(offset));
goto num_index_dim;
zend_hash_index_del(ht, hval);
break;
case IS_RESOURCE:
case IS_BOOL:
case IS_LONG:
@@ -33453,7 +33463,8 @@ static int ZEND_FASTCALL ZEND_UNSET_DIM_SPEC_CV_VAR_HANDLER(ZEND_OPCODE_HANDLER
switch (Z_TYPE_P(offset)) {
case IS_DOUBLE:
hval = zend_dval_to_lval(Z_DVAL_P(offset));
goto num_index_dim;
zend_hash_index_del(ht, hval);
break;
case IS_RESOURCE:
case IS_BOOL:
case IS_LONG:
@@ -36219,7 +36230,8 @@ static int ZEND_FASTCALL ZEND_UNSET_DIM_SPEC_CV_CV_HANDLER(ZEND_OPCODE_HANDLER_
switch (Z_TYPE_P(offset)) {
case IS_DOUBLE:
hval = zend_dval_to_lval(Z_DVAL_P(offset));
goto num_index_dim;
zend_hash_index_del(ht, hval);
break;
case IS_RESOURCE:
case IS_BOOL:
case IS_LONG:
+2 -2
View File
@@ -119,8 +119,8 @@ int zend_sprintf(char *buffer, const char *format, ...);
PHP_MAJOR_VERSION=5
PHP_MINOR_VERSION=4
PHP_RELEASE_VERSION=5
PHP_EXTRA_VERSION="-dev"
PHP_RELEASE_VERSION=6
PHP_EXTRA_VERSION=""
PHP_VERSION="$PHP_MAJOR_VERSION.$PHP_MINOR_VERSION.$PHP_RELEASE_VERSION$PHP_EXTRA_VERSION"
PHP_VERSION_ID=`expr [$]PHP_MAJOR_VERSION \* 10000 + [$]PHP_MINOR_VERSION \* 100 + [$]PHP_RELEASE_VERSION`
+1 -1
View File
@@ -2177,7 +2177,7 @@ string_copy:
convert_to_string_ex(zvalue);
if (!Z_STRLEN_PP(zvalue) || php_check_open_basedir(Z_STRVAL_PP(zvalue) TSRMLS_CC)) {
if (Z_STRLEN_PP(zvalue) && php_check_open_basedir(Z_STRVAL_PP(zvalue) TSRMLS_CC)) {
RETVAL_FALSE;
return 1;
}
+1 -1
View File
@@ -16,7 +16,7 @@ open_basedir="/tmp"
curl_close($ch);
?>
--EXPECTF--
bool(false)
bool(true)
bool(true)
Warning: curl_setopt(): open_basedir restriction in effect. File(/xxx/bar) is not within the allowed path(s): (/tmp) in %sbug61948.php on line %d
+19
View File
@@ -3430,10 +3430,19 @@ zval *date_interval_read_property(zval *object, zval *member, int type, const ze
zval_copy_ctor(&tmp_member);
convert_to_string(&tmp_member);
member = &tmp_member;
key = NULL;
}
obj = (php_interval_obj *)zend_objects_get_address(object TSRMLS_CC);
if (!obj->initialized) {
retval = (zend_get_std_object_handlers())->read_property(object, member, type, key TSRMLS_CC);
if (member == &tmp_member) {
zval_dtor(member);
}
return retval;
}
#define GET_VALUE_FROM_STRUCT(n,m) \
if (strcmp(Z_STRVAL_P(member), m) == 0) { \
value = obj->diff->n; \
@@ -3482,9 +3491,19 @@ void date_interval_write_property(zval *object, zval *member, zval *value, const
zval_copy_ctor(&tmp_member);
convert_to_string(&tmp_member);
member = &tmp_member;
key = NULL;
}
obj = (php_interval_obj *)zend_objects_get_address(object TSRMLS_CC);
if (!obj->initialized) {
(zend_get_std_object_handlers())->write_property(object, member, value, key TSRMLS_CC);
if (member == &tmp_member) {
zval_dtor(member);
}
return;
}
#define SET_VALUE_FROM_STRUCT(n,m) \
if (strcmp(Z_STRVAL_P(member), m) == 0) { \
if (value->type != IS_LONG) { \
+28
View File
@@ -0,0 +1,28 @@
--TEST--
Bug #62500 (Segfault in DateInterval class when extended)
--INI--
date.timezone=GMT
--FILE--
<?php
class Crasher extends DateInterval {
public $foo;
public function __construct($time_spec) {
var_dump($this->foo);
$this->foo = 3;
var_dump($this->foo);
var_dump($this->{2});
parent::__construct($time_spec);
}
}
try {
$c = new Crasher('blah');
} catch (Exception $e) {
var_dump($e->getMessage());
}
--EXPECTF--
NULL
int(3)
Notice: Undefined property: Crasher::$2 in %sbug62500.php on line %d
NULL
string(%s) "DateInterval::__construct(): Unknown or bad format (blah)"
+7
View File
@@ -321,6 +321,7 @@ int dom_xpath_document_read(dom_object *obj, zval **retval TSRMLS_DC)
xmlDoc *docp = NULL;
xmlXPathContextPtr ctx;
int ret;
zval *tmp;
ctx = (xmlXPathContextPtr) obj->ptr;
@@ -329,10 +330,16 @@ int dom_xpath_document_read(dom_object *obj, zval **retval TSRMLS_DC)
}
ALLOC_ZVAL(*retval);
tmp = *retval;
if (NULL == (*retval = php_dom_create_object((xmlNodePtr) docp, &ret, *retval, obj TSRMLS_CC))) {
FREE_ZVAL(tmp);
php_error_docref(NULL TSRMLS_CC, E_WARNING, "Cannot create required DOM object");
return FAILURE;
}
if (tmp != *retval) {
FREE_ZVAL(tmp);
}
return SUCCESS;
}
/* }}} */
+1 -1
View File
@@ -270,7 +270,7 @@ ZEND_GET_MODULE(fileinfo)
PHP_MINFO_FUNCTION(fileinfo)
{
php_info_print_table_start();
php_info_print_table_header(2, "fileinfo support", "enabled");
php_info_print_table_row(2, "fileinfo support", "enabled");
php_info_print_table_row(2, "version", PHP_FILEINFO_VERSION);
php_info_print_table_end();
}
+314 -72
View File
@@ -1,6 +1,6 @@
diff -u libmagic.orig/apprentice.c libmagic/apprentice.c
--- libmagic.orig/apprentice.c 2012-05-29 14:40:41.710960045 +0200
+++ libmagic/apprentice.c 2012-04-22 18:57:16.215980866 +0200
diff -u libmagic.origin/apprentice.c libmagic/apprentice.c
--- libmagic.origin/apprentice.c 2012-07-15 18:17:24.802087661 +0800
+++ libmagic/apprentice.c 2012-07-15 18:22:49.650087425 +0800
@@ -29,6 +29,8 @@
* apprentice - make one pass through /etc/magic, learning its secrets.
*/
@@ -271,7 +271,9 @@ diff -u libmagic.orig/apprentice.c libmagic/apprentice.c
+ size_t lineno = 0;
+
+ php_stream *stream;
+
- FILE *f = fopen(ms->file = fn, "r");
- if (f == NULL) {
+ TSRMLS_FETCH();
+
+#if PHP_API_VERSION < 20100412
@@ -279,9 +281,7 @@ diff -u libmagic.orig/apprentice.c libmagic/apprentice.c
+#else
+ stream = php_stream_open_wrapper((char *)fn, "rb", REPORT_ERRORS, NULL);
+#endif
- FILE *f = fopen(ms->file = fn, "r");
- if (f == NULL) {
+
+ if (stream == NULL) {
if (errno != ENOENT)
file_error(ms, errno, "cannot read magic file `%s'",
@@ -312,8 +312,12 @@ diff -u libmagic.orig/apprentice.c libmagic/apprentice.c
}
/*
@@ -757,20 +756,16 @@
int errs = 0;
@@ -754,23 +753,19 @@
apprentice_load(struct magic_set *ms, struct magic **magicp, uint32_t *nmagicp,
const char *fn, int action)
{
- int errs = 0;
+ int errs = 0, mflen = 0;
struct magic_entry *marray;
uint32_t marraycount, i, mentrycount = 0, starttest;
- size_t slen, files = 0, maxfiles = 0;
@@ -352,7 +356,7 @@ diff -u libmagic.orig/apprentice.c libmagic/apprentice.c
}
while ((d = readdir(dir)) != NULL) {
- if (asprintf(&mfn, "%s/%s", fn, d->d_name) < 0) {
+ if (snprintf(mfn, sizeof(mfn), "%s/%s", fn, d->d_name) < 0) {
+ if ((mflen = snprintf(mfn, sizeof(mfn), "%s/%s", fn, d->d_name)) < 0) {
file_oomem(ms,
strlen(fn) + strlen(d->d_name) + 2);
errs++;
@@ -364,7 +368,7 @@ diff -u libmagic.orig/apprentice.c libmagic/apprentice.c
continue;
}
if (files >= maxfiles) {
@@ -803,7 +799,6 @@
@@ -803,20 +799,19 @@
if ((filearr = CAST(char **,
realloc(filearr, mlen))) == NULL) {
file_oomem(ms, mlen);
@@ -372,6 +376,21 @@ diff -u libmagic.orig/apprentice.c libmagic/apprentice.c
closedir(dir);
errs++;
goto out;
}
}
- filearr[files++] = mfn;
+ filearr[files++] = estrndup(mfn, mflen);
}
closedir(dir);
qsort(filearr, files, sizeof(*filearr), cmpstrp);
for (i = 0; i < files; i++) {
load_1(ms, action, filearr[i], &errs, &marray,
&marraycount);
- free(filearr[i]);
+ efree(filearr[i]);
}
free(filearr);
} else
@@ -882,12 +877,7 @@
for (i = 0; i < marraycount; i++)
mentrycount += marray[i].cont_count;
@@ -386,18 +405,31 @@ diff -u libmagic.orig/apprentice.c libmagic/apprentice.c
mentrycount = 0;
for (i = 0; i < marraycount; i++) {
@@ -897,8 +887,8 @@
@@ -896,9 +886,14 @@
mentrycount += marray[i].cont_count;
}
out:
for (i = 0; i < marraycount; i++)
- for (i = 0; i < marraycount; i++)
- free(marray[i].mp);
- free(marray);
+ efree(marray[i].mp);
+ efree(marray);
+ for (i = 0; i < marraycount; i++) {
+ if (marray[i].mp) {
+ efree(marray[i].mp);
+ }
+ }
+ if (marray) {
+ efree(marray);
+ }
if (errs) {
*magicp = NULL;
*nmagicp = 0;
@@ -1178,11 +1168,7 @@
@@ -1175,14 +1170,13 @@
return -1;
}
me = &(*mentryp)[*nmentryp - 1];
+ if (me->mp == NULL) {
+ return -1;
+ }
if (me->cont_count == me->max_count) {
struct magic *nm;
size_t cnt = me->max_count + ALLOC_CHUNK;
@@ -410,7 +442,7 @@ diff -u libmagic.orig/apprentice.c libmagic/apprentice.c
me->mp = m = nm;
me->max_count = CAST(uint32_t, cnt);
}
@@ -1194,23 +1180,13 @@
@@ -1194,23 +1188,13 @@
struct magic_entry *mp;
maxmagic += ALLOC_INCR;
@@ -437,7 +469,18 @@ diff -u libmagic.orig/apprentice.c libmagic/apprentice.c
me->mp = m;
me->max_count = ALLOC_CHUNK;
} else
@@ -1361,7 +1337,7 @@
@@ -1353,6 +1337,10 @@
if (m->type == FILE_INVALID) {
if (ms->flags & MAGIC_CHECK)
file_magwarn(ms, "type `%s' invalid", l);
+ if (me->mp) {
+ efree(me->mp);
+ me->mp = NULL;
+ }
return -1;
}
@@ -1361,7 +1349,7 @@
m->mask_op = 0;
if (*l == '~') {
@@ -446,7 +489,7 @@ diff -u libmagic.orig/apprentice.c libmagic/apprentice.c
m->mask_op |= FILE_OPINVERSE;
else if (ms->flags & MAGIC_CHECK)
file_magwarn(ms, "'~' invalid for string types");
@@ -1370,7 +1346,7 @@
@@ -1370,7 +1358,7 @@
m->str_range = 0;
m->str_flags = m->type == FILE_PSTRING ? PSTRING_1_LE : 0;
if ((op = get_op(*l)) != -1) {
@@ -455,7 +498,7 @@ diff -u libmagic.orig/apprentice.c libmagic/apprentice.c
uint64_t val;
++l;
m->mask_op |= op;
@@ -1558,11 +1534,6 @@
@@ -1558,11 +1546,6 @@
if (check_format(ms, m) == -1)
return -1;
}
@@ -467,7 +510,7 @@ diff -u libmagic.orig/apprentice.c libmagic/apprentice.c
m->mimetype[0] = '\0'; /* initialise MIME type to none */
if (m->cont_level == 0)
++(*nmentryp); /* make room for next */
@@ -2195,56 +2166,68 @@
@@ -2195,56 +2178,69 @@
/*
* handle a compiled file.
@@ -542,6 +585,7 @@ diff -u libmagic.orig/apprentice.c libmagic/apprentice.c
+ mm = emalloc((size_t)st.sb.st_size);
+ if (php_stream_read(stream, mm, (size_t)st.sb.st_size) != (size_t)st.sb.st_size) {
file_badread(ms);
+ ret = 1;
goto error1;
}
-#define RET 1
@@ -559,7 +603,7 @@ diff -u libmagic.orig/apprentice.c libmagic/apprentice.c
ptr = (uint32_t *)(void *)*magicp;
if (*ptr != MAGICNO) {
if (swap4(*ptr) != MAGICNO) {
@@ -2259,35 +2242,55 @@
@@ -2259,35 +2255,55 @@
else
version = ptr[1];
if (version != VERSIONNO) {
@@ -631,7 +675,7 @@ diff -u libmagic.orig/apprentice.c libmagic/apprentice.c
return -1;
}
@@ -2301,42 +2304,49 @@
@@ -2301,42 +2317,49 @@
apprentice_compile(struct magic_set *ms, struct magic **magicp,
uint32_t *nmagicp, const char *fn)
{
@@ -639,10 +683,10 @@ diff -u libmagic.orig/apprentice.c libmagic/apprentice.c
char *dbname;
int rv = -1;
+ php_stream *stream;
+
+ TSRMLS_FETCH();
- dbname = mkdbname(ms, fn, 1);
+ TSRMLS_FETCH();
+
+ dbname = mkdbname(ms, fn, 0);
if (dbname == NULL)
@@ -692,7 +736,7 @@ diff -u libmagic.orig/apprentice.c libmagic/apprentice.c
return rv;
}
@@ -2349,6 +2359,7 @@
@@ -2349,6 +2372,7 @@
{
const char *p, *q;
char *buf;
@@ -700,7 +744,7 @@ diff -u libmagic.orig/apprentice.c libmagic/apprentice.c
if (strip) {
if ((p = strrchr(fn, '/')) != NULL)
@@ -2370,14 +2381,14 @@
@@ -2370,14 +2394,14 @@
q++;
/* Compatibility with old code that looked in .mime */
if (ms->flags & MAGIC_MIME) {
@@ -719,7 +763,7 @@ diff -u libmagic.orig/apprentice.c libmagic/apprentice.c
/* Compatibility with old code that looked in .mime */
if (strstr(p, ".mime") != NULL)
@@ -2467,7 +2478,7 @@
@@ -2467,7 +2491,7 @@
m->offset = swap4((uint32_t)m->offset);
m->in_offset = swap4((uint32_t)m->in_offset);
m->lineno = swap4((uint32_t)m->lineno);
@@ -728,9 +772,9 @@ diff -u libmagic.orig/apprentice.c libmagic/apprentice.c
m->str_range = swap4(m->str_range);
m->str_flags = swap4(m->str_flags);
}
diff -u libmagic.orig/ascmagic.c libmagic/ascmagic.c
--- libmagic.orig/ascmagic.c 2012-05-29 14:40:41.710960045 +0200
+++ libmagic/ascmagic.c 2012-04-22 18:57:16.215980866 +0200
diff -u libmagic.origin/ascmagic.c libmagic/ascmagic.c
--- libmagic.origin/ascmagic.c 2012-07-15 18:17:24.762087659 +0800
+++ libmagic/ascmagic.c 2012-07-15 18:20:42.730087520 +0800
@@ -139,10 +139,8 @@
/* malloc size is a conservative overestimate; could be
improved, or at least realloced after conversion. */
@@ -754,9 +798,9 @@ diff -u libmagic.orig/ascmagic.c libmagic/ascmagic.c
return rv;
}
diff -u libmagic.orig/cdf.c libmagic/cdf.c
--- libmagic.orig/cdf.c 2012-05-29 14:40:41.710960045 +0200
+++ libmagic/cdf.c 2012-04-22 18:57:16.219978162 +0200
diff -u libmagic.origin/cdf.c libmagic/cdf.c
--- libmagic.origin/cdf.c 2012-07-15 18:17:24.822087659 +0800
+++ libmagic/cdf.c 2012-07-15 18:20:42.730087520 +0800
@@ -43,7 +43,17 @@
#include <err.h>
#endif
@@ -818,9 +862,9 @@ diff -u libmagic.orig/cdf.c libmagic/cdf.c
cdf_print_elapsed_time(buf, sizeof(buf), tp);
(void)fprintf(stderr, "timestamp %s\n", buf);
} else {
diff -u libmagic.orig/cdf.h libmagic/cdf.h
--- libmagic.orig/cdf.h 2012-05-29 14:40:41.710960045 +0200
+++ libmagic/cdf.h 2012-04-22 18:57:16.219978162 +0200
diff -u libmagic.origin/cdf.h libmagic/cdf.h
--- libmagic.origin/cdf.h 2012-07-15 18:17:25.046087660 +0800
+++ libmagic/cdf.h 2012-07-15 18:20:42.730087520 +0800
@@ -35,7 +35,7 @@
#ifndef _H_CDF_
#define _H_CDF_
@@ -856,9 +900,9 @@ diff -u libmagic.orig/cdf.h libmagic/cdf.h
int cdf_read_header(const cdf_info_t *, cdf_header_t *);
void cdf_swap_header(cdf_header_t *);
void cdf_unpack_header(cdf_header_t *, char *);
diff -u libmagic.orig/cdf_time.c libmagic/cdf_time.c
--- libmagic.orig/cdf_time.c 2012-05-29 14:40:41.710960045 +0200
+++ libmagic/cdf_time.c 2012-04-22 18:57:16.219978162 +0200
diff -u libmagic.origin/cdf_time.c libmagic/cdf_time.c
--- libmagic.origin/cdf_time.c 2012-07-15 18:17:24.734087660 +0800
+++ libmagic/cdf_time.c 2012-07-15 18:20:42.734087519 +0800
@@ -96,7 +96,7 @@
}
@@ -915,9 +959,9 @@ diff -u libmagic.orig/cdf_time.c libmagic/cdf_time.c
static const cdf_timestamp_t tst = 0x01A5E403C2D59C00ULL;
static const char *ref = "Sat Apr 23 01:30:00 1977";
char *p, *q;
diff -u libmagic.orig/compress.c libmagic/compress.c
--- libmagic.orig/compress.c 2012-05-29 14:40:41.710960045 +0200
+++ libmagic/compress.c 2012-04-22 18:57:16.219978162 +0200
diff -u libmagic.origin/compress.c libmagic/compress.c
--- libmagic.origin/compress.c 2012-07-15 18:17:24.730087657 +0800
+++ libmagic/compress.c 2012-07-15 18:20:42.734087519 +0800
@@ -32,6 +32,7 @@
* uncompress(method, old, n, newch) - uncompress old into new,
* using method, return sizeof new
@@ -1078,9 +1122,9 @@ diff -u libmagic.orig/compress.c libmagic/compress.c
}
-#endif
+#endif /* if PHP_FILEINFO_UNCOMPRESS */
diff -u libmagic.orig/file.h libmagic/file.h
--- libmagic.orig/file.h 2012-05-29 14:40:41.710960045 +0200
+++ libmagic/file.h 2012-04-22 18:57:16.219978162 +0200
diff -u libmagic.origin/file.h libmagic/file.h
--- libmagic.origin/file.h 2012-07-15 18:17:25.046087660 +0800
+++ libmagic/file.h 2012-07-15 18:20:42.734087519 +0800
@@ -33,11 +33,9 @@
#ifndef __file_h__
#define __file_h__
@@ -1251,9 +1295,9 @@ diff -u libmagic.orig/file.h libmagic/file.h
+#endif
+
#endif /* __file_h__ */
diff -u libmagic.orig/fsmagic.c libmagic/fsmagic.c
--- libmagic.orig/fsmagic.c 2012-05-29 14:40:41.710960045 +0200
+++ libmagic/fsmagic.c 2012-04-22 18:57:16.219978162 +0200
diff -u libmagic.origin/fsmagic.c libmagic/fsmagic.c
--- libmagic.origin/fsmagic.c 2012-07-15 18:17:24.730087657 +0800
+++ libmagic/fsmagic.c 2012-07-15 18:20:42.734087519 +0800
@@ -59,27 +59,21 @@
# define minor(dev) ((dev) & 0xff)
#endif
@@ -1576,9 +1620,9 @@ diff -u libmagic.orig/fsmagic.c libmagic/fsmagic.c
}
/*
diff -u libmagic.orig/funcs.c libmagic/funcs.c
--- libmagic.orig/funcs.c 2012-05-29 14:40:41.710960045 +0200
+++ libmagic/funcs.c 2012-04-22 18:57:16.219978162 +0200
diff -u libmagic.origin/funcs.c libmagic/funcs.c
--- libmagic.origin/funcs.c 2012-07-15 18:17:25.046087660 +0800
+++ libmagic/funcs.c 2012-07-15 18:20:42.734087519 +0800
@@ -41,52 +41,42 @@
#if defined(HAVE_WCTYPE_H)
#include <wctype.h>
@@ -1872,9 +1916,10 @@ diff -u libmagic.orig/funcs.c libmagic/funcs.c
+ return rep_cnt;
}
+
diff -u libmagic.orig/magic.c libmagic/magic.c
--- libmagic.orig/magic.c 2012-05-29 14:40:41.710960045 +0200
+++ libmagic/magic.c 2012-04-22 18:57:16.219978162 +0200
Common subdirectories: libmagic.origin/.libs and libmagic/.libs
diff -u libmagic.origin/magic.c libmagic/magic.c
--- libmagic.origin/magic.c 2012-07-15 18:17:25.046087660 +0800
+++ libmagic/magic.c 2012-07-15 18:20:42.734087519 +0800
@@ -25,11 +25,6 @@
* SUCH DAMAGE.
*/
@@ -2250,9 +2295,9 @@ diff -u libmagic.orig/magic.c libmagic/magic.c
public const char *
magic_error(struct magic_set *ms)
diff -u libmagic.orig/magic.h libmagic/magic.h
--- libmagic.orig/magic.h 2012-05-29 14:40:41.710960045 +0200
+++ libmagic/magic.h 2012-04-22 18:57:16.219978162 +0200
diff -u libmagic.origin/magic.h libmagic/magic.h
--- libmagic.origin/magic.h 2012-07-15 18:17:24.734087660 +0800
+++ libmagic/magic.h 2012-07-15 18:20:42.734087519 +0800
@@ -85,6 +85,7 @@
const char *magic_getpath(const char *, int);
@@ -2269,20 +2314,20 @@ diff -u libmagic.orig/magic.h libmagic/magic.h
int magic_list(magic_t, const char *);
int magic_errno(magic_t);
diff -u libmagic.orig/print.c libmagic/print.c
--- libmagic.orig/print.c 2012-05-29 14:40:41.710960045 +0200
+++ libmagic/print.c 2012-05-29 14:34:03.770376387 +0200
diff -u libmagic.origin/print.c libmagic/print.c
--- libmagic.origin/print.c 2012-07-15 18:21:02.846087501 +0800
+++ libmagic/print.c 2012-07-15 18:20:42.734087519 +0800
@@ -29,6 +29,9 @@
* print.c - debugging printout routines
*/
+#define _GNU_SOURCE
+#include "php.h"
+#include "main/snprintf.h"
+
#include "file.h"
#ifndef lint
@@ -45,174 +48,21 @@
@@ -46,174 +49,21 @@
#define SZOF(a) (sizeof(a) / sizeof(a[0]))
@@ -2464,9 +2509,206 @@ diff -u libmagic.orig/print.c libmagic/print.c
}
protected const char *
diff -u libmagic.orig/readcdf.c libmagic/readcdf.c
--- libmagic.orig/readcdf.c 2012-05-29 14:40:41.710960045 +0200
+++ libmagic/readcdf.c 2012-04-22 18:57:16.219978162 +0200
diff -u libmagic.origin/print.c.rej libmagic/print.c.rej
--- libmagic.origin/print.c.rej 2012-07-15 18:17:24.762087659 +0800
+++ libmagic/print.c.rej 2012-07-15 18:20:27.186087168 +0800
@@ -1,12 +1,184 @@
---- libmagic/print.c 2012-05-29 14:34:03.770376387 +0200
-+++ libmagic.orig/print.c 2012-05-29 14:40:41.710960045 +0200
-@@ -29,9 +29,6 @@
- * print.c - debugging printout routines
- */
+--- libmagic.orig/print.c 2012-05-29 14:40:41.710960045 +0200
++++ libmagic/print.c 2012-05-29 14:34:03.770376387 +0200
+@@ -48,174 +51,21 @@
--#include "php.h"
--#include "main/snprintf.h"
+ #define SZOF(a) (sizeof(a) / sizeof(a[0]))
+
+-#ifndef COMPILE_ONLY
+-protected void
+-file_mdump(struct magic *m)
+-{
+- private const char optyp[] = { FILE_OPS };
+-
+- (void) fprintf(stderr, "%u: %.*s %u", m->lineno,
+- (m->cont_level & 7) + 1, ">>>>>>>>", m->offset);
+-
+- if (m->flag & INDIR) {
+- (void) fprintf(stderr, "(%s,",
+- /* Note: type is unsigned */
+- (m->in_type < file_nnames) ?
+- file_names[m->in_type] : "*bad*");
+- if (m->in_op & FILE_OPINVERSE)
+- (void) fputc('~', stderr);
+- (void) fprintf(stderr, "%c%u),",
+- ((size_t)(m->in_op & FILE_OPS_MASK) <
+- SZOF(optyp)) ?
+- optyp[m->in_op & FILE_OPS_MASK] : '?',
+- m->in_offset);
+- }
+- (void) fprintf(stderr, " %s%s", (m->flag & UNSIGNED) ? "u" : "",
+- /* Note: type is unsigned */
+- (m->type < file_nnames) ? file_names[m->type] : "*bad*");
+- if (m->mask_op & FILE_OPINVERSE)
+- (void) fputc('~', stderr);
+-
+- if (IS_STRING(m->type)) {
+- if (m->str_flags) {
+- (void) fputc('/', stderr);
+- if (m->str_flags & STRING_COMPACT_WHITESPACE)
+- (void) fputc(CHAR_COMPACT_WHITESPACE, stderr);
+- if (m->str_flags & STRING_COMPACT_OPTIONAL_WHITESPACE)
+- (void) fputc(CHAR_COMPACT_OPTIONAL_WHITESPACE,
+- stderr);
+- if (m->str_flags & STRING_IGNORE_LOWERCASE)
+- (void) fputc(CHAR_IGNORE_LOWERCASE, stderr);
+- if (m->str_flags & STRING_IGNORE_UPPERCASE)
+- (void) fputc(CHAR_IGNORE_UPPERCASE, stderr);
+- if (m->str_flags & REGEX_OFFSET_START)
+- (void) fputc(CHAR_REGEX_OFFSET_START, stderr);
+- if (m->str_flags & STRING_TEXTTEST)
+- (void) fputc(CHAR_TEXTTEST, stderr);
+- if (m->str_flags & STRING_BINTEST)
+- (void) fputc(CHAR_BINTEST, stderr);
+- if (m->str_flags & PSTRING_1_BE)
+- (void) fputc(CHAR_PSTRING_1_BE, stderr);
+- if (m->str_flags & PSTRING_2_BE)
+- (void) fputc(CHAR_PSTRING_2_BE, stderr);
+- if (m->str_flags & PSTRING_2_LE)
+- (void) fputc(CHAR_PSTRING_2_LE, stderr);
+- if (m->str_flags & PSTRING_4_BE)
+- (void) fputc(CHAR_PSTRING_4_BE, stderr);
+- if (m->str_flags & PSTRING_4_LE)
+- (void) fputc(CHAR_PSTRING_4_LE, stderr);
+- if (m->str_flags & PSTRING_LENGTH_INCLUDES_ITSELF)
+- (void) fputc(
+- CHAR_PSTRING_LENGTH_INCLUDES_ITSELF,
+- stderr);
+- }
+- if (m->str_range)
+- (void) fprintf(stderr, "/%u", m->str_range);
+- }
+- else {
+- if ((size_t)(m->mask_op & FILE_OPS_MASK) < SZOF(optyp))
+- (void) fputc(optyp[m->mask_op & FILE_OPS_MASK], stderr);
+- else
+- (void) fputc('?', stderr);
+-
+- if (m->num_mask) {
+- (void) fprintf(stderr, "%.8llx",
+- (unsigned long long)m->num_mask);
+- }
+- }
+- (void) fprintf(stderr, ",%c", m->reln);
+-
+- if (m->reln != 'x') {
+- switch (m->type) {
+- case FILE_BYTE:
+- case FILE_SHORT:
+- case FILE_LONG:
+- case FILE_LESHORT:
+- case FILE_LELONG:
+- case FILE_MELONG:
+- case FILE_BESHORT:
+- case FILE_BELONG:
+- (void) fprintf(stderr, "%d", m->value.l);
+- break;
+- case FILE_BEQUAD:
+- case FILE_LEQUAD:
+- case FILE_QUAD:
+- (void) fprintf(stderr, "%" INT64_T_FORMAT "d",
+- (unsigned long long)m->value.q);
+- break;
+- case FILE_PSTRING:
+- case FILE_STRING:
+- case FILE_REGEX:
+- case FILE_BESTRING16:
+- case FILE_LESTRING16:
+- case FILE_SEARCH:
+- file_showstr(stderr, m->value.s, (size_t)m->vallen);
+- break;
+- case FILE_DATE:
+- case FILE_LEDATE:
+- case FILE_BEDATE:
+- case FILE_MEDATE:
+- (void)fprintf(stderr, "%s,",
+- file_fmttime(m->value.l, 1));
+- break;
+- case FILE_LDATE:
+- case FILE_LELDATE:
+- case FILE_BELDATE:
+- case FILE_MELDATE:
+- (void)fprintf(stderr, "%s,",
+- file_fmttime(m->value.l, 0));
+- break;
+- case FILE_QDATE:
+- case FILE_LEQDATE:
+- case FILE_BEQDATE:
+- (void)fprintf(stderr, "%s,",
+- file_fmttime((uint32_t)m->value.q, 1));
+- break;
+- case FILE_QLDATE:
+- case FILE_LEQLDATE:
+- case FILE_BEQLDATE:
+- (void)fprintf(stderr, "%s,",
+- file_fmttime((uint32_t)m->value.q, 0));
+- break;
+- case FILE_FLOAT:
+- case FILE_BEFLOAT:
+- case FILE_LEFLOAT:
+- (void) fprintf(stderr, "%G", m->value.f);
+- break;
+- case FILE_DOUBLE:
+- case FILE_BEDOUBLE:
+- case FILE_LEDOUBLE:
+- (void) fprintf(stderr, "%G", m->value.d);
+- break;
+- case FILE_DEFAULT:
+- /* XXX - do anything here? */
+- break;
+- default:
+- (void) fputs("*bad*", stderr);
+- break;
+- }
+- }
+- (void) fprintf(stderr, ",\"%s\"]\n", m->desc);
+-}
+-#endif
+-
+ /*VARARGS*/
+ protected void
+ file_magwarn(struct magic_set *ms, const char *f, ...)
+ {
+ va_list va;
++ char *expanded_format;
++ TSRMLS_FETCH();
+
+- /* cuz we use stdout for most, stderr here */
+- (void) fflush(stdout);
-
- #include "file.h"
+- if (ms->file)
+- (void) fprintf(stderr, "%s, %lu: ", ms->file,
+- (unsigned long)ms->line);
+- (void) fprintf(stderr, "Warning: ");
+ va_start(va, f);
+- (void) vfprintf(stderr, f, va);
++ vasprintf(&expanded_format, f, va);
+ va_end(va);
+- (void) fputc('\n', stderr);
++
++ php_error_docref(NULL TSRMLS_CC, E_NOTICE, "Warning: %s", expanded_format);
++
++ free(expanded_format);
+ }
- #ifndef lint
+ protected const char *
diff -u libmagic.origin/readcdf.c libmagic/readcdf.c
--- libmagic.origin/readcdf.c 2012-07-15 18:17:24.734087660 +0800
+++ libmagic/readcdf.c 2012-07-15 18:20:42.734087519 +0800
@@ -30,7 +30,11 @@
#endif
@@ -2512,9 +2754,9 @@ diff -u libmagic.orig/readcdf.c libmagic/readcdf.c
c = cdf_ctime(&ts.tv_sec);
if ((ec = strchr(c, '\n')) != NULL)
*ec = '\0';
diff -u libmagic.orig/readelf.c libmagic/readelf.c
--- libmagic.orig/readelf.c 2012-05-29 14:40:41.710960045 +0200
+++ libmagic/readelf.c 2012-04-22 18:57:16.219978162 +0200
diff -u libmagic.origin/readelf.c libmagic/readelf.c
--- libmagic.origin/readelf.c 2012-07-15 18:17:25.046087660 +0800
+++ libmagic/readelf.c 2012-07-15 18:20:42.734087519 +0800
@@ -49,7 +49,7 @@
off_t, int *, int);
private int doshn(struct magic_set *, int, int, int, off_t, int, size_t,
@@ -2669,9 +2911,9 @@ diff -u libmagic.orig/readelf.c libmagic/readelf.c
fd = file_pipe2file(ms, fd, buf, nbytes);
if (fstat(fd, &st) == -1) {
diff -u libmagic.orig/softmagic.c libmagic/softmagic.c
--- libmagic.orig/softmagic.c 2012-05-29 14:40:41.710960045 +0200
+++ libmagic/softmagic.c 2012-05-29 14:34:31.900417647 +0200
diff -u libmagic.origin/softmagic.c libmagic/softmagic.c
--- libmagic.origin/softmagic.c 2012-07-15 18:17:24.722087658 +0800
+++ libmagic/softmagic.c 2012-07-15 18:20:42.734087519 +0800
@@ -41,6 +41,11 @@
#include <stdlib.h>
#include <time.h>
+20 -7
View File
@@ -753,7 +753,7 @@ private int
apprentice_load(struct magic_set *ms, struct magic **magicp, uint32_t *nmagicp,
const char *fn, int action)
{
int errs = 0;
int errs = 0, mflen = 0;
struct magic_entry *marray;
uint32_t marraycount, i, mentrycount = 0, starttest;
size_t files = 0, maxfiles = 0;
@@ -782,7 +782,7 @@ apprentice_load(struct magic_set *ms, struct magic **magicp, uint32_t *nmagicp,
goto out;
}
while ((d = readdir(dir)) != NULL) {
if (snprintf(mfn, sizeof(mfn), "%s/%s", fn, d->d_name) < 0) {
if ((mflen = snprintf(mfn, sizeof(mfn), "%s/%s", fn, d->d_name)) < 0) {
file_oomem(ms,
strlen(fn) + strlen(d->d_name) + 2);
errs++;
@@ -804,14 +804,14 @@ apprentice_load(struct magic_set *ms, struct magic **magicp, uint32_t *nmagicp,
goto out;
}
}
filearr[files++] = mfn;
filearr[files++] = estrndup(mfn, mflen);
}
closedir(dir);
qsort(filearr, files, sizeof(*filearr), cmpstrp);
for (i = 0; i < files; i++) {
load_1(ms, action, filearr[i], &errs, &marray,
&marraycount);
free(filearr[i]);
efree(filearr[i]);
}
free(filearr);
} else
@@ -886,9 +886,14 @@ apprentice_load(struct magic_set *ms, struct magic **magicp, uint32_t *nmagicp,
mentrycount += marray[i].cont_count;
}
out:
for (i = 0; i < marraycount; i++)
efree(marray[i].mp);
efree(marray);
for (i = 0; i < marraycount; i++) {
if (marray[i].mp) {
efree(marray[i].mp);
}
}
if (marray) {
efree(marray);
}
if (errs) {
*magicp = NULL;
*nmagicp = 0;
@@ -1165,6 +1170,9 @@ parse(struct magic_set *ms, struct magic_entry **mentryp, uint32_t *nmentryp,
return -1;
}
me = &(*mentryp)[*nmentryp - 1];
if (me->mp == NULL) {
return -1;
}
if (me->cont_count == me->max_count) {
struct magic *nm;
size_t cnt = me->max_count + ALLOC_CHUNK;
@@ -1329,6 +1337,10 @@ parse(struct magic_set *ms, struct magic_entry **mentryp, uint32_t *nmentryp,
if (m->type == FILE_INVALID) {
if (ms->flags & MAGIC_CHECK)
file_magwarn(ms, "type `%s' invalid", l);
if (me->mp) {
efree(me->mp);
me->mp = NULL;
}
return -1;
}
@@ -2219,6 +2231,7 @@ apprentice_map(struct magic_set *ms, struct magic **magicp, uint32_t *nmagicp,
mm = emalloc((size_t)st.sb.st_size);
if (php_stream_read(stream, mm, (size_t)st.sb.st_size) != (size_t)st.sb.st_size) {
file_badread(ms);
ret = 1;
goto error1;
}
ret = 1;
+69
View File
@@ -0,0 +1,69 @@
--TEST--
Bug #61964 (finfo_open with directory cause invalid free)
--SKIPIF--
<?php require_once(dirname(__FILE__) . '/skipif.inc'); ?>
--FILE--
<?php
$magic_file = dirname(__FILE__) . DIRECTORY_SEPARATOR . 'magic';
$ret = @finfo_open(FILEINFO_NONE, $magic_file . ".non-exits");
var_dump($ret);
$dir = __DIR__ . "/test-folder";
@mkdir($dir);
$magic_file_copy = $dir . "/magic.copy";
$magic_file_copy2 = $magic_file_copy . "2";
copy($magic_file, $magic_file_copy);
copy($magic_file, $magic_file_copy2);
$ret = finfo_open(FILEINFO_NONE, $dir);
var_dump($ret);
$ret = @finfo_open(FILEINFO_NONE, $dir);
var_dump($ret);
$ret = @finfo_open(FILEINFO_NONE, $dir. "/non-exits-dir");
var_dump($ret);
// write some test files to test folder
file_put_contents($dir . "/test1.txt", "string\n> Core\n> Me");
file_put_contents($dir . "/test2.txt", "a\nb\n");
@mkdir($dir . "/test-inner-folder");
finfo_open(FILEINFO_NONE, $dir);
echo "DONE: testing dir with files\n";
rmdir($dir . "/test-inner-folder");
unlink($dir . "/test1.txt");
unlink($dir . "/test2.txt");
unlink($magic_file_copy);
unlink($magic_file_copy2);
rmdir($dir);
?>
===DONE===
--EXPECTF--
bool(false)
resource(%d) of type (file_info)
resource(%d) of type (file_info)
bool(false)
Notice: finfo_open(): Warning: offset `string' invalid in %sbug61964.php on line %d
Notice: finfo_open(): Warning: offset ` Core' invalid in %sbug61964.php on line %d
Notice: finfo_open(): Warning: type `Core' invalid in %sbug61964.php on line %d
Notice: finfo_open(): Warning: offset `a' invalid in %sbug61964.php on line %d
Notice: finfo_open(): Warning: type `a' invalid in %sbug61964.php on line %d
Notice: finfo_open(): Warning: offset `b' invalid in %sbug61964.php on line %d
Notice: finfo_open(): Warning: type `b' invalid in %sbug61964.php on line %d
Warning: finfo_open(): Failed to load magic database at '%stest-folder'. in %sbug61964.php on line %d
DONE: testing dir with files
===DONE===
@@ -43,13 +43,7 @@ bool(false)
Warning: finfo_open() expects at most 2 parameters, 3 given in %sfinfo_open_error-win32.php on line %d
bool(false)
Warning: finfo_open(%smagic): failed to open stream: No such file or directory in %sfinfo_open_error-win32.php on line %d
Warning: finfo_open(%smagic): failed to open stream: No such file or directory in %sfinfo_open_error-win32.php on line %d
Warning: finfo_open(): Failed to load magic database at '%smagic'. in %sfinfo_open_error-win32.php on line %d
bool(false)
resource(6) of type (file_info)
Warning: finfo_open() expects parameter 1 to be long, string given in %sfinfo_open_error-win32.php on line %d
bool(false)
Executable → Regular
View File
File mode changed.
Executable → Regular
View File
File mode changed.
Executable → Regular
View File
File mode changed.
Executable → Regular
View File
File mode changed.
View File
File mode changed.
View File
File mode changed.
+1
View File
@@ -67,6 +67,7 @@ zend_object_value Collator_object_create(
intern = ecalloc( 1, sizeof(Collator_object) );
intl_error_init( COLLATOR_ERROR_P( intern ) TSRMLS_CC );
zend_object_std_init( &intern->zo, ce TSRMLS_CC );
object_properties_init(&intern->zo, ce);
retval.handle = zend_objects_store_put(
intern,
View File
File mode changed.
View File
File mode changed.
View File
File mode changed.
View File
File mode changed.
View File
File mode changed.
View File
File mode changed.
View File
File mode changed.
View File
File mode changed.
View File
File mode changed.
View File
File mode changed.
View File
File mode changed.
View File
File mode changed.
View File
File mode changed.
View File
File mode changed.
View File
File mode changed.
Executable → Regular
View File
File mode changed.
Executable → Regular
View File
File mode changed.
Executable → Regular
View File
File mode changed.
Executable → Regular
View File
File mode changed.
Executable → Regular
View File
File mode changed.
Executable → Regular
View File
File mode changed.
View File
File mode changed.
View File
File mode changed.
+1
View File
@@ -63,6 +63,7 @@ zend_object_value IntlDateFormatter_object_create(zend_class_entry *ce TSRMLS_DC
intern = ecalloc( 1, sizeof(IntlDateFormatter_object) );
dateformat_data_init( &intern->datef_data TSRMLS_CC );
zend_object_std_init( &intern->zo, ce TSRMLS_CC );
object_properties_init(&intern->zo, ce);
intern->date_type = 0;
intern->time_type = 0;
intern->calendar = 1; /* Gregorian calendar */
View File
File mode changed.
View File
File mode changed.
View File
File mode changed.
View File
File mode changed.
View File
File mode changed.
View File
File mode changed.
View File
File mode changed.
Executable → Regular
View File
File mode changed.
Executable → Regular
View File
File mode changed.
Executable → Regular
View File
File mode changed.
Executable → Regular
View File
File mode changed.
Executable → Regular
View File
File mode changed.
Executable → Regular
View File
File mode changed.
Executable → Regular
View File
File mode changed.
Executable → Regular
View File
File mode changed.
Executable → Regular
View File
File mode changed.
Executable → Regular
View File
File mode changed.
Executable → Regular
View File
File mode changed.
View File
File mode changed.
View File
File mode changed.
+1
View File
@@ -62,6 +62,7 @@ zend_object_value NumberFormatter_object_create(zend_class_entry *ce TSRMLS_DC)
intern = ecalloc( 1, sizeof(NumberFormatter_object) );
formatter_data_init( &intern->nf_data TSRMLS_CC );
zend_object_std_init( &intern->zo, ce TSRMLS_CC );
object_properties_init(&intern->zo, ce);
retval.handle = zend_objects_store_put(
intern,
View File
File mode changed.
View File
File mode changed.
View File
File mode changed.
View File
File mode changed.
View File
File mode changed.
View File
File mode changed.
View File
File mode changed.
View File
File mode changed.
View File
File mode changed.
Executable → Regular
View File
File mode changed.
View File
File mode changed.
View File
File mode changed.
View File
File mode changed.
Executable → Regular
View File
File mode changed.
Executable → Regular
View File
File mode changed.
Executable → Regular
View File
File mode changed.
Executable → Regular
View File
File mode changed.
Executable → Regular
View File
File mode changed.
Executable → Regular
View File
File mode changed.
Executable → Regular
View File
File mode changed.
Executable → Regular
View File
File mode changed.
Executable → Regular
View File
File mode changed.
Executable → Regular
View File
File mode changed.
Executable → Regular
View File
File mode changed.
Executable → Regular
View File
File mode changed.
Executable → Regular
View File
File mode changed.
Executable → Regular
View File
File mode changed.
Loaded 100 of 311 files, more files were not shown because too many files have changed in this diff. Show more