mirror of
https://github.com/bdnugget/php-src.git
synced 2026-11-11 19:20:50 +00:00
Compare commits
807
Commits
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
9d09291627 | ||
|
|
e1583cd82e | ||
|
|
282eab49fb | ||
|
|
191307c968 | ||
|
|
c572a7fd8b | ||
|
|
d509bf07bd | ||
|
|
eaf01568a1 | ||
|
|
96ea9c6e5b | ||
|
|
2aa9a15641 | ||
|
|
3b92265bc3 | ||
|
|
ee780e60b8 | ||
|
|
30b25d0229 | ||
|
|
273bda7b21 | ||
|
|
7f492c7f66 | ||
|
|
51781931e2 | ||
|
|
13594f8a98 | ||
|
|
08c7d57d73 | ||
|
|
c570bed1da | ||
|
|
04961ad0c0 | ||
|
|
7012611307 | ||
|
|
5cd01fa48b | ||
|
|
e4ba76cdec | ||
|
|
9e6779cfac | ||
|
|
96271ff8fb | ||
|
|
aac2b9464d | ||
|
|
946c404c5d | ||
|
|
a2e4ef3ba4 | ||
|
|
c34ba188cc | ||
|
|
f071936f47 | ||
|
|
8e2850fe3c | ||
|
|
4a1ae192a6 | ||
|
|
1c4a6d3f32 | ||
|
|
3f1bdda498 | ||
|
|
aa152b1c50 | ||
|
|
32c8f50ea9 | ||
|
|
e933031ccb | ||
|
|
344a9b2c7e | ||
|
|
823224ef8d | ||
|
|
6b1bd0d0dc | ||
|
|
838402a1bc | ||
|
|
d4d49f4f12 | ||
|
|
de3f385e5c | ||
|
|
12ab20c4fe | ||
|
|
c52581d95e | ||
|
|
8d699be646 | ||
|
|
2229ab084c | ||
|
|
f250ef7824 | ||
|
|
813dd91af8 | ||
|
|
ebce70c20e | ||
|
|
17dc898a72 | ||
|
|
a48b65d6f5 | ||
|
|
3c624f108e | ||
|
|
71b075062b | ||
|
|
8ab86d944a | ||
|
|
14620596ab | ||
|
|
135f4ebc10 | ||
|
|
18ecb768d0 | ||
|
|
9066f91b01 | ||
|
|
a747855425 | ||
|
|
0ab4f57c99 | ||
|
|
9818b12488 | ||
|
|
dd4b27e943 | ||
|
|
6555a5a93e | ||
|
|
53a63b82d4 | ||
|
|
077ff24ef9 | ||
|
|
c3e1afc2a3 | ||
|
|
6a05922020 | ||
|
|
3999ac15b4 | ||
|
|
3b43d3002b | ||
|
|
3e79cbe9b1 | ||
|
|
ba836422c6 | ||
|
|
09ac5ebe7f | ||
|
|
ff6862b7e1 | ||
|
|
f68866c487 | ||
|
|
bfebb9c6aa | ||
|
|
1493336708 | ||
|
|
687f673bb9 | ||
|
|
00a461a989 | ||
|
|
8e7fa70fd5 | ||
|
|
d033f6904a | ||
|
|
e69b4a743e | ||
|
|
bfa336e891 | ||
|
|
ac345b5915 | ||
|
|
dc4bfd4d80 | ||
|
|
63b6c3bab3 | ||
|
|
355ffae8dc | ||
|
|
e636ed5789 | ||
|
|
426522f4e0 | ||
|
|
06a48156f0 | ||
|
|
82655fb856 | ||
|
|
48fc6c5237 | ||
|
|
32a9ff9aef | ||
|
|
0bae389aa4 | ||
|
|
93ed844901 | ||
|
|
e4a93c6d0a | ||
|
|
1627157cdd | ||
|
|
b702ce45ce | ||
|
|
47fcac267c | ||
|
|
6621987732 | ||
|
|
4b5eda20ae | ||
|
|
f5bf2d7ed7 | ||
|
|
884c20439c | ||
|
|
1a836712f0 | ||
|
|
7055f3bae5 | ||
|
|
a524e99076 | ||
|
|
721fe01e55 | ||
|
|
632c5a775f | ||
|
|
99eede75b1 | ||
|
|
e29517872b | ||
|
|
fea7c24372 | ||
|
|
d6ddd48ed0 | ||
|
|
3197576f2c | ||
|
|
91e968462f | ||
|
|
572cd2000b | ||
|
|
d080807957 | ||
|
|
a6fdd53b90 | ||
|
|
fb69372707 | ||
|
|
886690219d | ||
|
|
d9722865f7 | ||
|
|
b90c2e7cb1 | ||
|
|
0b6182b683 | ||
|
|
f974d42e18 | ||
|
|
7d8ff0b3fc | ||
|
|
ddf40dc32d | ||
|
|
011ec5b1af | ||
|
|
6abaea16ef | ||
|
|
e3d54cd30e | ||
|
|
3e6435e3c4 | ||
|
|
a42f47071f | ||
|
|
88667674e2 | ||
|
|
13c65dd8f7 | ||
|
|
802706c8a9 | ||
|
|
0008c005b9 | ||
|
|
4f89db675d | ||
|
|
afbe0bfb19 | ||
|
|
39d82c35c3 | ||
|
|
9f6c828f63 | ||
|
|
f14ec051af | ||
|
|
0be28396ae | ||
|
|
72f551ca66 | ||
|
|
80f98df54e | ||
|
|
415b75e3f5 | ||
|
|
ecf2cabcdd | ||
|
|
011547bd36 | ||
|
|
0c3d8accbb | ||
|
|
1bebeea29c | ||
|
|
77816c4ed9 | ||
|
|
020749e160 | ||
|
|
bcfdedd53f | ||
|
|
e0ca27fc23 | ||
|
|
d3ec090688 | ||
|
|
b43345ec0c | ||
|
|
7728a703f6 | ||
|
|
fbaed2ba81 | ||
|
|
a607ee15a8 | ||
|
|
1989085325 | ||
|
|
bb33de84b0 | ||
|
|
3c984d6d4f | ||
|
|
bdfcb7ca73 | ||
|
|
61abd918e7 | ||
|
|
70ebbdea0a | ||
|
|
558d25649d | ||
|
|
422a101fae | ||
|
|
2b72a6df0a | ||
|
|
d6e3b89d9b | ||
|
|
40cabb39c6 | ||
|
|
fe6bbdca72 | ||
|
|
ea8bdf5d8f | ||
|
|
7323f24b58 | ||
|
|
bcfdf04cbf | ||
|
|
49fa689d5b | ||
|
|
8d7a9aa9a3 | ||
|
|
30ef00c15c | ||
|
|
c299ac0bd4 | ||
|
|
4324c10d24 | ||
|
|
2a39c5e435 | ||
|
|
16d4cad828 | ||
|
|
22ce11b711 | ||
|
|
9ebb304ed5 | ||
|
|
255d78111a | ||
|
|
56274f384a | ||
|
|
36b2ebf95f | ||
|
|
4d82ed968e | ||
|
|
3bb8d604c7 | ||
|
|
afc82c756c | ||
|
|
996920a889 | ||
|
|
71b329c703 | ||
|
|
5f6b9cf5f6 | ||
|
|
4710871ab8 | ||
|
|
efdaf53cf5 | ||
|
|
3008404116 | ||
|
|
0a9e3e3d86 | ||
|
|
f6f23616b0 | ||
|
|
f7e075e4b9 | ||
|
|
947b9ce3f3 | ||
|
|
2cce527199 | ||
|
|
33bcc088ca | ||
|
|
eaf1121b7e | ||
|
|
b2ce675b6a | ||
|
|
9c0cfe0d6c | ||
|
|
00a0efa5a2 | ||
|
|
938763c753 | ||
|
|
913c81d4ad | ||
|
|
82b940adf2 | ||
|
|
040a647481 | ||
|
|
20fd5b9932 | ||
|
|
299a6a2baf | ||
|
|
865194fa4d | ||
|
|
fb7437d7f1 | ||
|
|
e40df88ad6 | ||
|
|
aa1be9514f | ||
|
|
3222df99d9 | ||
|
|
3e738e7a46 | ||
|
|
a05ca2c6d3 | ||
|
|
5626bcabf2 | ||
|
|
a7b3f59f7b | ||
|
|
c94580895f | ||
|
|
8a15edc308 | ||
|
|
6fbed2a9f3 | ||
|
|
a18c0be994 | ||
|
|
7e62c98201 | ||
|
|
251d108d58 | ||
|
|
2c3579fdd7 | ||
|
|
84208a6740 | ||
|
|
c7bc9053e1 | ||
|
|
a2d837585e | ||
|
|
4ad3ac09c1 | ||
|
|
78ecc18710 | ||
|
|
48c50e616a | ||
|
|
51735ad33f | ||
|
|
7f3ba73b3d | ||
|
|
0b6e00cd64 | ||
|
|
95b9e430f4 | ||
|
|
271b03b6f7 | ||
|
|
d3d84cc152 | ||
|
|
4ece5a103e | ||
|
|
a07b780bc6 | ||
|
|
e3685d6918 | ||
|
|
d48cc34211 | ||
|
|
bb451fe8ac | ||
|
|
34f39a1086 | ||
|
|
0bc4075753 | ||
|
|
6d32ad3c1f | ||
|
|
0c040fc5d3 | ||
|
|
ca6a024965 | ||
|
|
3cea6c7bf4 | ||
|
|
b6b8b5ffc6 | ||
|
|
a0ef3cc010 | ||
|
|
30bc1b72ef | ||
|
|
5b05a2da10 | ||
|
|
c7c4b92b38 | ||
|
|
c9a717fcb8 | ||
|
|
38450822ae | ||
|
|
4b90dd8f06 | ||
|
|
4121be50e9 | ||
|
|
c133062470 | ||
|
|
802cbbd49b | ||
|
|
5812e33052 | ||
|
|
5759108ed0 | ||
|
|
4d2e295344 | ||
|
|
8d7ecdfdbb | ||
|
|
b91afb10af | ||
|
|
0bdbd69561 | ||
|
|
0445f9025b | ||
|
|
6712e8680c | ||
|
|
eb0ae9417b | ||
|
|
8294411819 | ||
|
|
51eb7b4aea | ||
|
|
a4bc21cbe5 | ||
|
|
323769820f | ||
|
|
38576823b1 | ||
|
|
7b62380d6b | ||
|
|
1e09a216e4 | ||
|
|
de44ff21e5 | ||
|
|
323984a1ae | ||
|
|
1ae79dfe28 | ||
|
|
ba70e77b43 | ||
|
|
f2445c083a | ||
|
|
f096e27011 | ||
|
|
ff12af6133 | ||
|
|
7fbf3433c7 | ||
|
|
9f8376ead3 | ||
|
|
6c80425fb1 | ||
|
|
82be89d366 | ||
|
|
9f729f9c6b | ||
|
|
ff9c528454 | ||
|
|
7f97b581c2 | ||
|
|
3f511f6ddb | ||
|
|
dd7d7e2b6e | ||
|
|
cb22f59dbd | ||
|
|
706152d40d | ||
|
|
35d506b942 | ||
|
|
055622caf2 | ||
|
|
22717a0c8c | ||
|
|
7c7b7b4042 | ||
|
|
0608b239ab | ||
|
|
f5748aab6c | ||
|
|
631e6fc427 | ||
|
|
030bfc24ab | ||
|
|
89f977c117 | ||
|
|
28e7780326 | ||
|
|
fab09bda92 | ||
|
|
8abacb0292 | ||
|
|
4b0df64a46 | ||
|
|
ce125a6d46 | ||
|
|
97400732ad | ||
|
|
12e8c8ddc7 | ||
|
|
d34a636598 | ||
|
|
b6dc5c0574 | ||
|
|
91e30c22d1 | ||
|
|
8b083a9938 | ||
|
|
ce2c662791 | ||
|
|
1a9b6363f4 | ||
|
|
96ec5091f5 | ||
|
|
4aab8b21ac | ||
|
|
9d028122b4 | ||
|
|
c3fd834e3a | ||
|
|
c557abeb04 | ||
|
|
3fcaf01902 | ||
|
|
a61ac8cfe6 | ||
|
|
4ebb71d265 | ||
|
|
716cc044ef | ||
|
|
adefeac748 | ||
|
|
f2e15c11c4 | ||
|
|
d60e754107 | ||
|
|
0a68541055 | ||
|
|
925c892dc9 | ||
|
|
66ec8d9632 | ||
|
|
5765def870 | ||
|
|
077c6ea03b | ||
|
|
3e2513d8f3 | ||
|
|
af99e4e438 | ||
|
|
6b719df163 | ||
|
|
629eecbf7c | ||
|
|
3ac8882dc1 | ||
|
|
a987ae115d | ||
|
|
053c91d1ce | ||
|
|
9f9266cd88 | ||
|
|
7aea024b69 | ||
|
|
db53404011 | ||
|
|
22c4a22379 | ||
|
|
944f02b46d | ||
|
|
2b3e1ecece | ||
|
|
ff4522e7dc | ||
|
|
8728f276f9 | ||
|
|
4399a96a6b | ||
|
|
88c8ecb0a7 | ||
|
|
d52ad52511 | ||
|
|
792218240f | ||
|
|
8e5a9e931d | ||
|
|
7126bbbd9e | ||
|
|
e3fb9c3e8f | ||
|
|
9011deb604 | ||
|
|
db1fa7fa80 | ||
|
|
51d28a7b17 | ||
|
|
3100dc31f0 | ||
|
|
d602767ec5 | ||
|
|
e5912d6486 | ||
|
|
77e3667550 | ||
|
|
8cad08f9a3 | ||
|
|
79dbf136b0 | ||
|
|
72fed70e47 | ||
|
|
9c3e1e96b8 | ||
|
|
02f8fe6aa0 | ||
|
|
ff9bc5c5e1 | ||
|
|
0bde38f6d2 | ||
|
|
252f09fbe6 | ||
|
|
65e12bbf74 | ||
|
|
4904830ca5 | ||
|
|
10d64bd4a9 | ||
|
|
966e1e6833 | ||
|
|
6e617627f6 | ||
|
|
947df429ca | ||
|
|
9118a6ba7d | ||
|
|
65d1a3a441 | ||
|
|
bf8ac5f70c | ||
|
|
255422ab1e | ||
|
|
5dda7e709c | ||
|
|
c95f7e8bb7 | ||
|
|
3fdd12683f | ||
|
|
4219951e86 | ||
|
|
d92e82edc2 | ||
|
|
2b43578d54 | ||
|
|
ea9f303dd2 | ||
|
|
bdfafa3dd4 | ||
|
|
a2ad68d054 | ||
|
|
aa89f171fa | ||
|
|
85c513c1fc | ||
|
|
d72e47f4af | ||
|
|
1ed6d9109e | ||
|
|
d2e781ff7e | ||
|
|
bbd2a36b74 | ||
|
|
9e48089f65 | ||
|
|
007685a39d | ||
|
|
baa0e628be | ||
|
|
c4e040a468 | ||
|
|
9d8330a389 | ||
|
|
c06fb2f274 | ||
|
|
9d638e65c7 | ||
|
|
a2374d6a81 | ||
|
|
17530bbccd | ||
|
|
b3542a6ec4 | ||
|
|
7e9fd69bd8 | ||
|
|
7edf0f9e96 | ||
|
|
109dc1e6f6 | ||
|
|
9075bfd1d9 | ||
|
|
b48436eb77 | ||
|
|
7dcb90d877 | ||
|
|
0d161c7bfb | ||
|
|
00f576cc97 | ||
|
|
e6d3c85e89 | ||
|
|
4103f0bfbd | ||
|
|
e5a211bafc | ||
|
|
32027f5944 | ||
|
|
d189d478e3 | ||
|
|
baa869110b | ||
|
|
b4c07450d2 | ||
|
|
ba65b35b7f | ||
|
|
4d8283a3ad | ||
|
|
f1092fb663 | ||
|
|
023a3caf05 | ||
|
|
536ed996a0 | ||
|
|
ae31c3c66a | ||
|
|
2b2874eafd | ||
|
|
2d1f1b1b68 | ||
|
|
e95f0a0058 | ||
|
|
7db52b84b7 | ||
|
|
c5903bd6ab | ||
|
|
6788dcf3bc | ||
|
|
da3fad6285 | ||
|
|
ba9cdc0ad1 | ||
|
|
b764a1a782 | ||
|
|
98d0c1fade | ||
|
|
80e1950121 | ||
|
|
eb829c6bbc | ||
|
|
e808403250 | ||
|
|
013c7f1f92 | ||
|
|
cc96a72170 | ||
|
|
df22f1e09a | ||
|
|
56fcbaa848 | ||
|
|
0d4da18bdd | ||
|
|
7d8db13f39 | ||
|
|
ccd4958088 | ||
|
|
a44816ed09 | ||
|
|
63a6a6ee56 | ||
|
|
f456fffe04 | ||
|
|
d87c493722 | ||
|
|
69084a71a6 | ||
|
|
c243cd8610 | ||
|
|
9ca087df12 | ||
|
|
488cd17ff5 | ||
|
|
ef65c8ca60 | ||
|
|
c2724d08fb | ||
|
|
af6d9528ce | ||
|
|
59596a527c | ||
|
|
fb8c6db95a | ||
|
|
1557e35034 | ||
|
|
17eb9361e1 | ||
|
|
c2d0db2a3a | ||
|
|
87a91cb7b6 | ||
|
|
2dc6d844ef | ||
|
|
46a6126e34 | ||
|
|
afeef64609 | ||
|
|
d719c020e6 | ||
|
|
d9e457bbad | ||
|
|
921ea6a428 | ||
|
|
519e4c1158 | ||
|
|
2a9bb86383 | ||
|
|
a19fb50fd6 | ||
|
|
120b469bb4 | ||
|
|
49cf106aa4 | ||
|
|
5ee54f12af | ||
|
|
c752e95c36 | ||
|
|
3b4540f926 | ||
|
|
0cb1a19851 | ||
|
|
54f742e30d | ||
|
|
6d3be89192 | ||
|
|
8d06c2cf2a | ||
|
|
99afacffcd | ||
|
|
09f6582694 | ||
|
|
300f28b58e | ||
|
|
fcc80dcb86 | ||
|
|
0136b5cec6 | ||
|
|
79f0466eff | ||
|
|
ac2a97209b | ||
|
|
c940701612 | ||
|
|
f492ccfec6 | ||
|
|
c77343ea9e | ||
|
|
34f117411e | ||
|
|
74f431ed45 | ||
|
|
4cf377704b | ||
|
|
c4a9c79e28 | ||
|
|
7f2d38d966 | ||
|
|
6131780061 | ||
|
|
1ad22f19e2 | ||
|
|
90d7d1004c | ||
|
|
f148e5a64f | ||
|
|
e721d542ee | ||
|
|
9acebf6f4a | ||
|
|
cccb875ecd | ||
|
|
a43447aad6 | ||
|
|
008ca451c1 | ||
|
|
b43e2722ab | ||
|
|
a7e664e216 | ||
|
|
783b7b5cac | ||
|
|
23b814a8b7 | ||
|
|
adfdb7a77f | ||
|
|
d84d3e47f3 | ||
|
|
ca779b84f9 | ||
|
|
23db743e46 | ||
|
|
0e3465a61f | ||
|
|
13ac985397 | ||
|
|
855e9fb998 | ||
|
|
42b58608e5 | ||
|
|
7f4cdc8719 | ||
|
|
f60f40afaa | ||
|
|
3ba6c9f870 | ||
|
|
566babac58 | ||
|
|
3959313932 | ||
|
|
a012002652 | ||
|
|
78c4bc3086 | ||
|
|
a12e0a69b8 | ||
|
|
38969d726b | ||
|
|
49b4865adb | ||
|
|
8b52d17a9b | ||
|
|
8d362208e1 | ||
|
|
29980934c0 | ||
|
|
612a5d30db | ||
|
|
09ec05ee72 | ||
|
|
59305cdc08 | ||
|
|
c9745da78e | ||
|
|
8ce15a6cc3 | ||
|
|
39c67fe48d | ||
|
|
7861cec3ef | ||
|
|
58ed732623 | ||
|
|
22f64f09f2 | ||
|
|
71376a9789 | ||
|
|
b0ef277d3a | ||
|
|
3f2bc9daa6 | ||
|
|
3371e54109 | ||
|
|
5f21f1e7c8 | ||
|
|
e815e613ac | ||
|
|
21aa7d168a | ||
|
|
d34a68db52 | ||
|
|
18e73c14a2 | ||
|
|
3cdae46259 | ||
|
|
a7653d9485 | ||
|
|
81af2ad666 | ||
|
|
0d6a4b2d12 | ||
|
|
b60437a4ad | ||
|
|
3a78a01817 | ||
|
|
aa6595916b | ||
|
|
3fc347d251 | ||
|
|
7631655051 | ||
|
|
a16133c719 | ||
|
|
e6bca5b8a5 | ||
|
|
677debbd11 | ||
|
|
5cebc6e703 | ||
|
|
85489ac01a | ||
|
|
21e8496b72 | ||
|
|
7d1ff9b203 | ||
|
|
574a268345 | ||
|
|
32ecd29b07 | ||
|
|
91ec3a8141 | ||
|
|
17bf5aa167 | ||
|
|
3404865719 | ||
|
|
a0d1b54bf1 | ||
|
|
72eeac2581 | ||
|
|
a55dc942cd | ||
|
|
c72618c48c | ||
|
|
e9148ca0e3 | ||
|
|
64c8147b91 | ||
|
|
910107f3f4 | ||
|
|
ae37ab1364 | ||
|
|
9c1837e8da | ||
|
|
8d1e2fdfda | ||
|
|
4db72b092f | ||
|
|
921ed1e76e | ||
|
|
942cea640f | ||
|
|
9331f6554a | ||
|
|
4b9d2da517 | ||
|
|
3ed65d36f9 | ||
|
|
ffccfdd9ec | ||
|
|
157f45242a | ||
|
|
d9a51ce483 | ||
|
|
a92f5edb70 | ||
|
|
30dbcfe1c8 | ||
|
|
e0c2374a93 | ||
|
|
91eb3c5a54 | ||
|
|
89af9ac202 | ||
|
|
85261c8268 | ||
|
|
c542cf02a1 | ||
|
|
8b93b4e373 | ||
|
|
b26e125eda | ||
|
|
84d76e82bb | ||
|
|
53e5f104e4 | ||
|
|
a3409dc80d | ||
|
|
638ced7d36 | ||
|
|
e649bf4aa6 | ||
|
|
9a86c92895 | ||
|
|
ddccfe7a12 | ||
|
|
d305bc31aa | ||
|
|
b405a2c230 | ||
|
|
92926978a2 | ||
|
|
07fb812d50 | ||
|
|
056c0c4324 | ||
|
|
984f01c1ed | ||
|
|
e2e013662d | ||
|
|
1ea392bb55 | ||
|
|
b3e3d679c5 | ||
|
|
7f512a75b7 | ||
|
|
b09626373f | ||
|
|
5db40d5a2f | ||
|
|
646a8aabba | ||
|
|
a0f2b8ff27 | ||
|
|
4b06c31923 | ||
|
|
3c001f3279 | ||
|
|
fa4b164375 | ||
|
|
aa3fc14911 | ||
|
|
20eee2e5e4 | ||
|
|
c5d0d152a9 | ||
|
|
ab029cf81a | ||
|
|
7bad8ec1ca | ||
|
|
7ac1f7eee7 | ||
|
|
c957a3ae9c | ||
|
|
a6f3a6b470 | ||
|
|
e28ad0cd28 | ||
|
|
d6296c9f33 | ||
|
|
b27f9a96e7 | ||
|
|
3af972a44b | ||
|
|
6c3a5e8d05 | ||
|
|
b512bab367 | ||
|
|
74469110b3 | ||
|
|
518f9a3586 | ||
|
|
0d08b726b2 | ||
|
|
a49254c325 | ||
|
|
80589d3bf6 | ||
|
|
6324a1f35c | ||
|
|
bbced47e80 | ||
|
|
ddb4a69a98 | ||
|
|
bf29902c14 | ||
|
|
3c15c00891 | ||
|
|
3247a9c40b | ||
|
|
f732dfba27 | ||
|
|
7c1d04ece1 | ||
|
|
cde0b736c5 | ||
|
|
3be9fae529 | ||
|
|
df71cbc0d5 | ||
|
|
962243af08 | ||
|
|
217b40b1aa | ||
|
|
67bbebf598 | ||
|
|
b47ae1bdb7 | ||
|
|
38d47b02df | ||
|
|
e812a31c9b | ||
|
|
11c47b663f | ||
|
|
1f4754a0bf | ||
|
|
3fc970cc4f | ||
|
|
ed32a8a6e2 | ||
|
|
ab61e0138e | ||
|
|
597f0acfaa | ||
|
|
704599d3a9 | ||
|
|
71539c429e | ||
|
|
3f41dea857 | ||
|
|
575e56649c | ||
|
|
c6dca00fbb | ||
|
|
154d823ad0 | ||
|
|
ef49b9a8de | ||
|
|
83a893a5d6 | ||
|
|
b9259ff9d1 | ||
|
|
73ef7ed458 | ||
|
|
8fd7172306 | ||
|
|
132ad2d26c | ||
|
|
8bddde3f80 | ||
|
|
aa90a2d3e0 | ||
|
|
0f1d65592b | ||
|
|
f8bcc8c15f | ||
|
|
3813ffa6f9 | ||
|
|
9c332b4b9e | ||
|
|
52252ef91d | ||
|
|
29401ca5a9 | ||
|
|
e27731f3db | ||
|
|
0540f6ddb1 | ||
|
|
dd44c11b55 | ||
|
|
bedf300691 | ||
|
|
43c88da822 | ||
|
|
99e6a560dc | ||
|
|
89e6d5bd22 | ||
|
|
e7057c6825 | ||
|
|
584ced66d5 | ||
|
|
a1a4c02290 | ||
|
|
a2de42599b | ||
|
|
8867ffc100 | ||
|
|
99614941d7 | ||
|
|
b5ca904be2 | ||
|
|
9fbc798d63 | ||
|
|
444aba4d5f | ||
|
|
abda35380f | ||
|
|
3572d5f2b0 | ||
|
|
dae1582b66 | ||
|
|
e3388ff043 | ||
|
|
e179d4e86b | ||
|
|
d3dce9e02e | ||
|
|
eaa3298b4a | ||
|
|
a54f690ae0 | ||
|
|
e780773ee6 | ||
|
|
3c1bcc2c8c | ||
|
|
1cd04d8739 | ||
|
|
3fff948321 | ||
|
|
435cf74f45 | ||
|
|
9919125435 | ||
|
|
2b5cd5b7fe | ||
|
|
071a3c3c7a | ||
|
|
b0994638ee | ||
|
|
5591b9fabb | ||
|
|
d0eaa59d0f | ||
|
|
29c885c8bd | ||
|
|
c9e793df5e | ||
|
|
844799cfd5 | ||
|
|
d6b537e8ca | ||
|
|
dba2bf64dd | ||
|
|
f9020054d2 | ||
|
|
22955ad4bf | ||
|
|
b2483079bb | ||
|
|
f2d5b34f26 | ||
|
|
99e65a945e | ||
|
|
d5b6ae48f7 | ||
|
|
b2863d6ecc | ||
|
|
08e90b069f | ||
|
|
422eb1b8f6 | ||
|
|
8424c90476 | ||
|
|
c0defbdc81 | ||
|
|
ec469a9f6a | ||
|
|
0397dd836b | ||
|
|
74a872c001 | ||
|
|
6499ce4847 | ||
|
|
0cc37e4a06 | ||
|
|
84f868ded7 | ||
|
|
8808ffa0ff | ||
|
|
7d2735fbef | ||
|
|
6414245da6 | ||
|
|
e3b599807c | ||
|
|
864632a1b1 | ||
|
|
6bbb6b7df7 | ||
|
|
743e7d8cb7 | ||
|
|
3f3da95a4c | ||
|
|
bb46ef5a6e | ||
|
|
bb46aa5f97 | ||
|
|
b364219ade | ||
|
|
de78386d8f | ||
|
|
1fa754ffd3 | ||
|
|
3cb41ad94d | ||
|
|
34455b8ab8 | ||
|
|
ff209bb97c | ||
|
|
af5cb849ee | ||
|
|
ab165076a9 | ||
|
|
488d12c2e5 | ||
|
|
27c06db0bd | ||
|
|
3bfe758475 | ||
|
|
dee98d2d9e | ||
|
|
19c4363c8a | ||
|
|
7c375c4879 | ||
|
|
51e0152170 | ||
|
|
59338d84b7 | ||
|
|
8f00f19419 | ||
|
|
df7ba6eb86 | ||
|
|
d6593aa472 | ||
|
|
3fbb9f50c5 | ||
|
|
5be5df48c9 | ||
|
|
b337c7ad95 | ||
|
|
1000e22750 | ||
|
|
4efe92fa7c | ||
|
|
b822f24748 | ||
|
|
1ff15e8260 | ||
|
|
0ff050f076 | ||
|
|
2689a74cee | ||
|
|
b11ad90dfc | ||
|
|
bc7d3a9484 | ||
|
|
03eb1fd623 | ||
|
|
24a764e086 | ||
|
|
7c53e81273 | ||
|
|
173069cead | ||
|
|
0902cc8651 | ||
|
|
1b3ea47dbc | ||
|
|
fb11097b06 | ||
|
|
0722818374 | ||
|
|
72e8a2ec60 | ||
|
|
e073d72618 | ||
|
|
21f74ba99e | ||
|
|
279c926f8b | ||
|
|
26eeef7599 | ||
|
|
07fde460a3 | ||
|
|
d70eefbaa0 | ||
|
|
3d1a87fb88 | ||
|
|
df9603aae0 | ||
|
|
4560601437 | ||
|
|
77972bc68a | ||
|
|
877cdf6862 | ||
|
|
75b081d0d1 | ||
|
|
f9a2648d61 | ||
|
|
8a0fc77582 | ||
|
|
7a67e94f17 | ||
|
|
2826401afe | ||
|
|
b51bb4132f | ||
|
|
281fb1f2ed | ||
|
|
fbdf0ba4e5 | ||
|
|
311e37c4b1 | ||
|
|
e0beb2850f |
No files matched your search
@@ -0,0 +1,11 @@
|
||||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<projectDescription>
|
||||
<name>php-5.2</name>
|
||||
<comment></comment>
|
||||
<projects>
|
||||
</projects>
|
||||
<buildSpec>
|
||||
</buildSpec>
|
||||
<natures>
|
||||
</natures>
|
||||
</projectDescription>
|
||||
@@ -1,101 +1,317 @@
|
||||
PHP NEWS
|
||||
|||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|
||||
27 Nov 2008, PHP 5.2.7RC5
|
||||
- Upgraded PCRE to version 7.8 (Fixes CVE-2008-2371) (Ilia)
|
||||
17 Jun 2009, PHP 5.2.10
|
||||
- Updated timezone database to version 2009.9 (2009i) (Derick)
|
||||
|
||||
- Fixed a crash inside gd with invalid fonts (Fixes CVE-2008-3658). (Pierre)
|
||||
- Fixed a possible overflow inside memnstr (Fixes CVE-2008-3659). (Laurent
|
||||
Gaffie)
|
||||
- Added "ignore_errors" option to http fopen wrapper. (David Zulke, Sara)
|
||||
- Added new CURL options CURLOPT_REDIR_PROTOCOLS, CURLOPT_PROTOCOLS,
|
||||
and CURLPROTO_* for redirect fixes in CURL 7.19.4. (Yoram Bar Haim, Stas)
|
||||
- Added support for Sun CC (FR #46595 and FR #46513). (David Soria Parra)
|
||||
|
||||
- Fixed memory leak inside readline_callback_handler_remove() function. (Felipe)
|
||||
- Fixed bug #46696 (cURL fails in upload files with specified content-type).
|
||||
(Ilia)
|
||||
- Fixed bug #46673 (stream_lock call with wrong paramater). (Arnaud)
|
||||
- Fixed bug #46649 (Setting array element with that same array produces
|
||||
inconsistent results). (Arnaud)
|
||||
- Fixed bug #46626 (mb_convert_case does not handle apostrophe correctly).
|
||||
(Ilia)
|
||||
- Fixed bug #46427 (SoapClient() stumbles over its "stream_context" parameter).
|
||||
(Dmitry, Herman Radtke)
|
||||
- Fixed bug #44882 (SOAP extension object decoding bug). (Dmitry)
|
||||
- Fixed bug #44182 (extract($a, EXTR_REFS) can fail to split copy-on-write
|
||||
references). (robin_fernandes at uk dot ibm dot com)
|
||||
- Fixed bug #44181 (extract($a, EXTR_OVERWRITE|EXTR_REFS) can fail to create
|
||||
references to $a). (robin_fernandes at uk dot ibm dot com)
|
||||
- Fixed bug #42473 (ob_start php://output and headers). (Arnaud)
|
||||
- Changed default value of array_unique()'s optional sorting type parameter
|
||||
back to SORT_STRING to fix backwards compatibility breakage introduced in
|
||||
PHP 5.2.9. (Moriyoshi)
|
||||
|
||||
20 Nov 2008, PHP 5.2.7RC4
|
||||
- Added logging option for error_log to send directly to SAPI. (Stas)
|
||||
- Fixed memory corruptions while reading properties of zip files. (Ilia)
|
||||
- Fixed memory leak in ob_get_clean/ob_get_flush. (Christian)
|
||||
- Fixed segfault on invalid session.save_path. (Hannes)
|
||||
- Fixed leaks in imap when a mail_criteria is used. (Pierre)
|
||||
- Fixed missing erealloc() in fix for Bug #40091 in spl_autoload_register. (Greg)
|
||||
|
||||
- Fixed sybase_fetch_*() to continue reading after CS_ROW_FAIL status (Timm)
|
||||
- Fixed a bug inside dba_replace() that could cause file truncation with
|
||||
invalid keys. (Ilia)
|
||||
- Fixed memory leak inside readline_callback_handler_install() function.
|
||||
(Ilia)
|
||||
- Fixed memory leak inside readline_completion_function() function. (Felipe)
|
||||
|
||||
- Fixed bug #46543 (ibase_trans() memory leaks when using wrong parameters).
|
||||
- Fixed bug #48562 (Reference recursion causes segfault when used in
|
||||
wddx_serialize_vars()). (Felipe)
|
||||
- Fixed bug #48557 (Numeric string keys in Apache Hashmaps are not cast to
|
||||
integers). (David Zuelke)
|
||||
- Fixed bug #48518 (curl crashes when writing into invalid file handle). (Tony)
|
||||
- Fixed bug #48514 (cURL extension uses same resource name for simple and
|
||||
multi APIs). (Felipe)
|
||||
- Fixed bug #48469 (ldap_get_entries() leaks memory on empty search
|
||||
results). (Patrick)
|
||||
- Fixed bug #48456 (CPPFLAGS not restored properly in phpize.m4). (Jani,
|
||||
spisek at kerio dot com)
|
||||
- Fixed bug #48448 (Compile failure under IRIX 6.5.30 building cast.c).
|
||||
(Kalle)
|
||||
- Fixed bug #48441 (ldap_search() sizelimit, timelimit and deref options
|
||||
persist). (Patrick)
|
||||
- Fixed bug #48434 (Improve memory_get_usage() accuracy). (Arnaud)
|
||||
- Fixed bug #48416 (Force a cache limit in ereg() to stop excessive memory
|
||||
usage). (Scott)
|
||||
- Fixed bug #48409 (Crash when exception is thrown while passing function
|
||||
arguments). (Arnaud)
|
||||
- Fixed bug #48378 (exif_read_data() segfaults on certain corrupted .jpeg
|
||||
files). (Pierre)
|
||||
- Fixed bug #48359 (Script hangs on snmprealwalk if OID is not increasing).
|
||||
(Ilia, simonov at gmail dot com)
|
||||
- Fixed bug #48336 (ReflectionProperty::getDeclaringClass() does not work
|
||||
with redeclared property).
|
||||
(patch by Markus dot Lidel at shadowconnect dot com)
|
||||
- Fixed bug #48326 (constant MSG_DONTWAIT not defined). (Arnaud)
|
||||
- Fixed bug #48313 (fgetcsv() does not return null for empty rows). (Ilia)
|
||||
- Fixed bug #48309 (stream_copy_to_stream() and fpasstru() do not update
|
||||
stream position of plain files). (Arnaud)
|
||||
- Fixed bug #48307 (stream_copy_to_stream() copies 0 bytes when $source is a
|
||||
socket). (Arnaud)
|
||||
- Fixed bug #48273 (snmp*_real_walk() returns SNMP errors as values).
|
||||
(Ilia, lytboris at gmail dot com)
|
||||
- Fixed bug #48256 (Crash due to double-linking of history.o).
|
||||
(tstarling at wikimedia dot org)
|
||||
- Fixed bug #48248 (SIGSEGV when access to private property via &__get).
|
||||
(Felipe)
|
||||
- Fixed bug #46521 (Curl ZTS OpenSSL, error in config.m4 fragment).
|
||||
(jd at cpanel dot net)
|
||||
- Fixed bug #46496 (wddx_serialize treats input as ISO-8859-1). (Mark Karpeles)
|
||||
- Fixed bug #46127 (php_openssl_tcp_sockop_accept forgets to set context
|
||||
on accepted stream) (Mark Karpeles, Pierre)
|
||||
- Fixed bug #44818 (php://memory writeable when opened read only). (Arnaud)
|
||||
- Fixed bug #41033 (enable signing with DSA keys. (gordyf at google dot com,
|
||||
Pierre)
|
||||
- Fixed bug #30312 (crash in sybase_unbuffered_query() function). (Timm)
|
||||
- Fixed stream_get_contents() when using $maxlength and socket is not
|
||||
closed. indeyets@php.net on #46049. (Arnaud)
|
||||
- Fixed bug #48247 (Crash on errors during startup). (Stas)
|
||||
- Fixed bug #48240 (DBA Segmentation fault dba_nextkey). (Felipe)
|
||||
- Fixed bug #48224 (Incorrect shuffle in array_rand). (Etienne)
|
||||
- Fixed bug #48221 (memory leak when passing invalid xslt parameter).
|
||||
(Felipe)
|
||||
- Fixed bug #48207 (CURLOPT_(FILE|WRITEHEADER options do not error out when
|
||||
working with a non-writable stream). (Ilia)
|
||||
- Fixed bug #48206 (Iterating over an invalid data structure with
|
||||
RecursiveIteratorIterator leads to a segfault). (Scott)
|
||||
- Fixed bug #48204 (xmlwriter_open_uri() does not emit warnings on invalid
|
||||
paths). (Ilia)
|
||||
- Fixed bug #48203 (Crash when CURLOPT_STDERR is set to regular file). (Jani)
|
||||
- Fixed bug #48202 (Out of Memory error message when passing invalid file
|
||||
path) (Pierre)
|
||||
- Fixed bug #48156 (Added support for lcov v1.7). (Ilia)
|
||||
- Fixed bug #48132 (configure check for curl ssl support fails with
|
||||
--disable-rpath). (Jani)
|
||||
- Fixed bug #48131 (Don't try to bind ipv4 addresses to ipv6 ips via bindto).
|
||||
(Ilia)
|
||||
- Fixed bug #48070 (PDO_OCI: Segfault when using persistent connection).
|
||||
(Pierre, Matteo, jarismar dot php at gmail dot com)
|
||||
- Fixed bug #48058 (Year formatter goes wrong with out-of-int range). (Derick)
|
||||
- Fixed bug #48038 (odbc_execute changes variables used to form params array).
|
||||
(Felipe)
|
||||
- Fixed bug #47997 (stream_copy_to_stream returns 1 on empty streams). (Arnaud)
|
||||
- Fixed bug #47991 (SSL streams fail if error stack contains items). (Mikko)
|
||||
- Fixed bug #47981 (error handler not called regardless). (Hannes)
|
||||
- Fixed bug #47969 (ezmlm_hash() returns different values depend on OS). (Ilia)
|
||||
- Fixed bug #47946 (ImageConvolution overwrites background). (Ilia)
|
||||
- Fixed bug #47940 (memory leaks in imap_body). (Pierre, Jake Levitt)
|
||||
- Fixed bug #47937 (system() calls sapi_flush() regardless of output
|
||||
buffering). (Ilia)
|
||||
- Fixed bug #47903 ("@" operator does not work with string offsets). (Felipe)
|
||||
- Fixed bug #47893 (CLI aborts on non blocking stdout). (Arnaud)
|
||||
- Fixed bug #47849 (Non-deep import loses the namespace). (Rob)
|
||||
- Fixed bug #47845 (PDO_Firebird omits first row from query). (Lars W)
|
||||
- Fixed bug #47836 (array operator [] inconsistency when the array has
|
||||
PHP_INT_MAX index value). (Matt)
|
||||
- Fixed bug #47831 (Compile warning for strnlen() in main/spprintf.c).
|
||||
(Ilia, rainer dot jung at kippdata dot de)
|
||||
- Fixed bug #47828 (openssl_x509_parse() segfaults when a UTF-8 conversion
|
||||
fails). (Scott, Kees Cook, Pierre)
|
||||
- Fixed bug #47818 (Segfault due to bound callback param). (Felipe)
|
||||
- Fixed bug #47801 (__call() accessed via parent:: operator is provided
|
||||
incorrect method name). (Felipe)
|
||||
- Fixed bug #47769 (Strange extends PDO). (Felipe)
|
||||
- Fixed bug #47745 (FILTER_VALIDATE_INT doesn't allow minimum integer).
|
||||
(Dmitry)
|
||||
- Fixed bug #47721 (Alignment issues in mbstring and sysvshm extension).
|
||||
(crrodriguez at opensuse dot org, Ilia)
|
||||
- Fixed bug #47704 (PHP crashes on some "bad" operations with string
|
||||
offsets). (Dmitry)
|
||||
- Fixed bug #47695 (build error when xmlrpc and iconv are compiled against
|
||||
different iconv versions). (Scott)
|
||||
- Fixed bug #47667 (ZipArchive::OVERWRITE seems to have no effect).
|
||||
(Mikko, Pierre)
|
||||
- Fixed bug #47644 (Valid integers are truncated with json_decode()). (Scott)
|
||||
- Fixed bug #47639 (pg_copy_from() WARNING: nonstandard use of \\ in a
|
||||
string literal). (Ilia)
|
||||
- Fixed bug #47616 (curl keeps crashing). (Felipe)
|
||||
- Fixed bug #47598 (FILTER_VALIDATE_EMAIL is locale aware). (Ilia)
|
||||
- Fixed bug #47566 (pcntl_wexitstatus() returns signed status).
|
||||
(patch by james at jamesreno dot com)
|
||||
- Fixed bug #47564 (unpacking unsigned long 32bit bit endian returns wrong
|
||||
result). (Ilia)
|
||||
- Fixed bug #47487 (performance degraded when reading large chunks after
|
||||
fix of bug #44607). (Arnaud)
|
||||
- Fixed bug #47468 (enable cli|cgi-only extensions for embed sapi). (Jani)
|
||||
- Fixed bug #47435 (FILTER_FLAG_NO_PRIV_RANGE does not work with ipv6
|
||||
addresses in the filter extension). (Ilia)
|
||||
- Fixed bug #47430 (Errors after writing to nodeValue parameter of an absent
|
||||
previousSibling). (Rob)
|
||||
- Fixed bug #47365 (ip2long() may allow some invalid values on certain 64bit
|
||||
systems). (Ilia)
|
||||
- Fixed bug #47254 (Wrong Reflection for extends class). (Felipe)
|
||||
- Fixed bug #47042 (cgi sapi is incorrectly removing SCRIPT_FILENAME).
|
||||
(Sriram Natarajan, David Soria Parra)
|
||||
- Fixed bug #46882 (Serialize / Unserialize misbehaviour under OS with
|
||||
different bit numbers). (Matt)
|
||||
- Fixed bug #46812 (get_class_vars() does not include visible private variable
|
||||
looking at subclass). (Arnaud)
|
||||
- Fixed bug #46386 (Digest authentication with SOAP module fails against MSSQL
|
||||
SOAP services). (Ilia, lordelph at gmail dot com)
|
||||
- Fixed bug #46109 (Memory leak when mysqli::init() is called multiple times).
|
||||
(Andrey)
|
||||
- Fixed bug #45997 (safe_mode bypass with exec/system/passthru (windows only)).
|
||||
(Pierre)
|
||||
- Fixed bug #45877 (Array key '2147483647' left as string). (Matt)
|
||||
- Fixed bug #45822 (Near infinite-loops while parsing huge relative offsets).
|
||||
(Derick, Mike Sullivan)
|
||||
- Fixed bug #45799 (imagepng() crashes on empty image).
|
||||
(Martin McNickle, Takeshi Abe)
|
||||
- Fixed bug #45622 (isset($arrayObject->p) misbehaves with
|
||||
ArrayObject::ARRAY_AS_PROPS set). (robin_fernandes at uk dot ibm dot com, Arnaud)
|
||||
- Fixed bug #45614 (ArrayIterator::current(), ::key() can show 1st private prop
|
||||
of wrapped object). (robin_fernandes at uk dot ibm dot com, Arnaud)
|
||||
- Fixed bug #45540 (stream_context_create creates bad http request). (Arnaud)
|
||||
- Fixed bug #45202 (zlib.output_compression can not be set with ini_set()).
|
||||
(Jani)
|
||||
- Fixed bug #45191 (error_log ignores date.timezone php.ini val when setting
|
||||
logging timestamps). (Derick)
|
||||
- Fixed bug #45092 (header HTTP context option not being used when compiled
|
||||
using --with-curlwrappers). (Jani)
|
||||
- Fixed bug #44996 (xmlrpc_decode() ignores time zone on iso8601.datetime).
|
||||
(Ilia, kawai at apache dot org)
|
||||
- Fixed bug #44827 (define() is missing error checks for class constants).
|
||||
(Ilia)
|
||||
- Fixed bug #44214 (Crash using preg_replace_callback() and global variables).
|
||||
(Nuno, Scott)
|
||||
- Fixed bug #43073 (TrueType bounding box is wrong for angle<>0).
|
||||
(Martin McNickle)
|
||||
- Fixed bug #42663 (gzinflate() try to allocate all memory with truncated
|
||||
data). (Arnaud)
|
||||
- Fixed bug #42414 (some odbc_*() functions incompatible with Oracle ODBC
|
||||
driver). (jhml at gmx dot net)
|
||||
- Fixed bug #42362 (HTTP status codes 204 and 304 should not be gzipped).
|
||||
(Scott, Edward Z. Yang)
|
||||
- Fixed bug #42143 (The constant NAN is reported as 0 on Windows)
|
||||
(Kanwaljeet Singla, Venkat Raman Don)
|
||||
- Fixed bug #38805 (PDO truncates text from SQL Server text data type field).
|
||||
(Steph)
|
||||
|
||||
06 Nov 2008, PHP 5.2.7RC3
|
||||
|
||||
26 Feb 2009, PHP 5.2.9
|
||||
- Changed __call() to be invoked on private/protected method access, similar to
|
||||
properties and __get(). (Andrei)
|
||||
|
||||
- Added optional sorting type flag parameter to array_unique(). Default is
|
||||
SORT_REGULAR. (Andrei)
|
||||
|
||||
- Fixed a crash on extract in zip when files or directories entry names contain
|
||||
a relative path. (Pierre)
|
||||
- Fixed error conditions handling in stream_filter_append(). (Arnaud)
|
||||
- Fixed zip filename property read. (Pierre)
|
||||
- Fixed explode() behavior with empty string to respect negative limit. (Shire)
|
||||
- Fixed security issue in imagerotate(), background colour isn't validated
|
||||
correctly with a non truecolour image. Reported by Hamid Ebadi,
|
||||
APA Laboratory (Fixes CVE-2008-5498). (Scott)
|
||||
- Fixed a segfault when malformed string is passed to json_decode(). (Scott)
|
||||
- Fixed bug in xml_error_string() which resulted in messages being
|
||||
off by one. (Scott)
|
||||
|
||||
- Fixed bug #47422 (modulus operator returns incorrect results on 64 bit
|
||||
linux). (Matt)
|
||||
- Fixed bug #47399 (mb_check_encoding() returns true for some illegal SJIS
|
||||
characters). (for-bugs at hnw dot jp, Moriyoshi)
|
||||
- Fixed bug #47353 (crash when creating a lot of objects in object
|
||||
destructor). (Tony)
|
||||
- Fixed bug #47322 (sscanf %d doesn't work). (Felipe)
|
||||
- Fixed bug #47282 (FILTER_VALIDATE_EMAIL is marking valid email addresses
|
||||
as invalid). (Ilia)
|
||||
- Fixed bug #47220 (segfault in dom_document_parser in recovery mode). (Rob)
|
||||
- Fixed bug #47217 (content-type is not set properly for file uploads). (Ilia)
|
||||
- Fixed bug #47174 (base64_decode() interprets pad char in mid string as
|
||||
terminator). (Ilia)
|
||||
- Fixed bug #47165 (Possible memory corruption when passing return value by
|
||||
reference). (Dmitry)
|
||||
- Fixed bug #47152 (gzseek/fseek using SEEK_END produces strange results).
|
||||
(Felipe)
|
||||
- Fixed bug #47131 (SOAP Extension ignores "user_agent" ini setting). (Ilia)
|
||||
- Fixed bug #47109 (Memory leak on $a->{"a"."b"} when $a is not an object).
|
||||
(Etienne, Dmitry)
|
||||
- Fixed bug #47104 (Linking shared extensions fails with icc). (Jani)
|
||||
- Fixed bug #47049 (SoapClient::__soapCall causes a segmentation fault).
|
||||
(Dmitry)
|
||||
- Fixed bug #47048 (Segfault with new pg_meta_data). (Felipe)
|
||||
- Fixed bug #47042 (PHP cgi sapi is removing SCRIPT_FILENAME for non
|
||||
apache). (Sriram Natarajan)
|
||||
- Fixed bug #47037 (No error when using fopen with empty string). (Cristian
|
||||
Rodriguez R., Felipe)
|
||||
- Fixed bug #47035 (dns_get_record returns a garbage byte at the end of a
|
||||
TXT record). (Felipe)
|
||||
- Fixed bug #47027 (var_export doesn't show numeric indices on ArrayObject).
|
||||
(Derick)
|
||||
- Fixed bug #46985 (OVERWRITE and binary mode does not work, regression
|
||||
introduced in 5.2.8). (Pierre)
|
||||
- Fixed bug #46973 (IPv6 address filter rejects valid address). (Felipe)
|
||||
- Fixed bug #46964 (Fixed pdo_mysql build with older version of MySQL). (Ilia)
|
||||
- Fixed bug #46959 (Unable to disable PCRE). (Scott)
|
||||
- Fixed bug #46918 (imap_rfc822_parse_adrlist host part not filled in
|
||||
correctly). (Felipe)
|
||||
- Fixed bug #46889 (Memory leak in strtotime()). (Derick)
|
||||
- Fixed bug #46887 (Invalid calls to php_error_docref()). (oeriksson at
|
||||
mandriva dot com, Ilia)
|
||||
- Fixed bug #46873 (extract($foo) crashes if $foo['foo'] exists). (Arnaud)
|
||||
- Fixed bug #46843 (CP936 euro symbol is not converted properly). (ty_c at
|
||||
cybozuy dot co dot jp, Moriyoshi)
|
||||
- Fixed bug #46798 (Crash in mssql extension when retrieving a NULL value
|
||||
inside a binary or image column type). (Ilia)
|
||||
- Fixed bug #46782 (fastcgi.c parse error). (Matt)
|
||||
- Fixed bug #46760 (SoapClient doRequest fails when proxy is used). (Felipe)
|
||||
- Fixed bug #46748 (Segfault when an SSL error has more than one error).
|
||||
(Scott)
|
||||
- Fixed bug #46739 (array returned by curl_getinfo should contain
|
||||
content_type key). (Mikko)
|
||||
- Fixed bug #46699 (xml_parse crash when parser is namespace aware). (Rob)
|
||||
- Fixed bug #46419 (Elements of associative arrays with NULL value are
|
||||
lost). (Dmitry)
|
||||
- Fixed bug #46282 (Corrupt DBF When Using DATE). (arne at bukkie dot nl)
|
||||
- Fixed bug #46026 (bz2.decompress/zlib.inflate filter tries to decompress
|
||||
after end of stream). (Greg)
|
||||
- Fixed bug #46005 (User not consistently logged under Apache2). (admorten
|
||||
at umich dot edu, Stas)
|
||||
- Fixed bug #45996 (libxml2 2.7 causes breakage with character data in
|
||||
xml_parse()). (Rob)
|
||||
- Fixed bug #45940 (MySQLI OO does not populate connect_error property on
|
||||
failed connect). (Johannes)
|
||||
- Fixed bug #45923 (mb_st[r]ripos() offset not handled correctly). (Moriyoshi)
|
||||
- Fixed bug #45327 (memory leak if offsetGet throws exception). (Greg)
|
||||
- Fixed bug #45239 (Encoding detector hangs with mbstring.strict_detection
|
||||
enabled). (Moriyoshi)
|
||||
- Fixed bug #45161 (Reusing a curl handle leaks memory). (Mark Karpeles, Jani)
|
||||
- Fixed bug #44336 (Improve pcre UTF-8 string matching performance). (frode
|
||||
at coretrek dot com, Nuno)
|
||||
- Fixed bug #43841 (mb_strrpos() offset is byte count for negative values).
|
||||
(Moriyoshi)
|
||||
- Fixed bug #37209 (mssql_execute with non fatal errors). (Kalle)
|
||||
- Fixed bug #35975 (Session cookie expires date format isn't the most
|
||||
compatible. Now matches that of setcookie()). (Scott)
|
||||
|
||||
|
||||
08 Dec 2008, PHP 5.2.8
|
||||
- Reverted bug fix #42718 that broke magic_quotes_gpc (Scott)
|
||||
|
||||
04 Dec 2008, PHP 5.2.7
|
||||
- Upgraded PCRE to version 7.8 (Fixes CVE-2008-2371). (Ilia)
|
||||
- Updated timezone database to version 2008.9. (Derick)
|
||||
- Upgraded bundled libzip to 0.9.0. (Pierre)
|
||||
|
||||
- Added logging option for error_log to send directly to SAPI. (Stas)
|
||||
- Added PHP_MAJOR_VERSION, PHP_MINOR_VERSION, PHP_RELEASE_VERSION,
|
||||
PHP_EXTRA_VERSION, PHP_VERSION_ID, PHP_ZTS and PHP_DEBUG constants. (Pierre)
|
||||
- Added "PHP_INI_SCAN_DIR" environment variable which can be used to
|
||||
either disable or change the compile time ini scan directory (FR #45114).
|
||||
(Jani)
|
||||
|
||||
- Updated timezone database to version 2008.9. (Derick)
|
||||
|
||||
- Fixed bug #46426 (offset parameter of stream_get_contents() does not work
|
||||
for "0"). (Felipe)
|
||||
- Fixed bug #46406 (Unregistering nodeclass throws E_FATAL). (Rob)
|
||||
- Fixed bug #46389 (NetWare needs small patch for _timezone).
|
||||
(patch by guenter@php.net)
|
||||
- Fixed bug #46379 (Infinite loop when parsing '#' in one line file). (Arnaud)
|
||||
- Fixed bug #46388 (stream_notification_callback inside of object destroys
|
||||
object variables). (Felipe)
|
||||
- Fixed bug #46381 (wrong $this passed to internal methods causes segfault).
|
||||
(Tony)
|
||||
- Fixed bug #46082 (stream_set_blocking() can cause a crash in some
|
||||
circumstances). (Felipe)
|
||||
- Fixed bug #46064 (Exception when creating ReflectionProperty object on
|
||||
dynamicly created property). (Felipe)
|
||||
- Fixed bug #46024 (stream_select() doesn't return the correct number).
|
||||
(Arnaud)
|
||||
- Fixed bug #45529 (new DateTimeZone() and date_create()->getTimezone() behave
|
||||
different). (Derick)
|
||||
- Fixed bug #45303 (Opening php:// wrapper in append mode results in a warning).
|
||||
(Arnaud)
|
||||
- Fixed bug #45166 (substr() overflow changes). (Felipe)
|
||||
- Fixed bug #44938 (gettext functions crash with overly long domain).
|
||||
(Christian Schneider, Ilia)
|
||||
- Fixed bug #44607 (stream_get_line unable to correctly identify the "ending"
|
||||
in the stream content). (Arnaud)
|
||||
- Fixed bug #44327 (PDORow::queryString property & numeric offsets / Crash).
|
||||
- Fixed missing initialization of BG(page_uid) and BG(page_gid),
|
||||
reported by Maksymilian Arciemowicz. (Stas)
|
||||
- Fixed memory leak inside sqlite_create_aggregate(). (Felipe)
|
||||
- Fixed memory leak inside PDO sqlite's sqliteCreateAggregate() method.
|
||||
(Felipe)
|
||||
- Fixed bug #43731 (socket_getpeername: cannot use on stdin with inetd).
|
||||
(Arnaud)
|
||||
- Fixed bug #43452 (strings containing a weekday, or a number plus weekday
|
||||
behaved incorrect of the current day-of-week was the same as the one in the
|
||||
phrase).(Derick)
|
||||
- Fixed bug #43353 (wrong detection of 'data' wrapper causes notice).
|
||||
(gk at gknw dot de, Arnaud)
|
||||
- Fixed bug #42855 (dns_get_record() doesn't return all text from TXT record).
|
||||
(a dot u dot savchuk at gmail dot com)
|
||||
- Fixed bug #42718 (FILTER_UNSAFE_RAW not applied when configured as default
|
||||
filter). (Arnaud)
|
||||
- Fixed bug #42294 (Unified solution for round() based on C99 round). (Ilia)
|
||||
- Fixed bug #14962 (PECL) (::extractTo 2nd argument is not really optional)
|
||||
(Mark van Der Velden)
|
||||
|
||||
- Fixed a crash inside gd with invalid fonts (Fixes CVE-2008-3658). (Pierre)
|
||||
- Fixed a possible overflow inside memnstr (Fixes CVE-2008-3659).
|
||||
(LaurentGaffie)
|
||||
- Fixed incorrect php_value order for Apache configuration, reported by
|
||||
Maksymilian Arciemowicz. (Stas)
|
||||
- Fixed memory leak inside readline_callback_handler_remove() function.
|
||||
(Felipe)
|
||||
- Fixed sybase_fetch_*() to continue reading after CS_ROW_FAIL status (Timm)
|
||||
- Fixed a bug inside dba_replace() that could cause file truncation
|
||||
withinvalid keys. (Ilia)
|
||||
- Fixed memory leak inside readline_callback_handler_install() function.(Ilia)
|
||||
- Fixed memory leak inside readline_completion_function() function. (Felipe)
|
||||
- Fixed stream_get_contents() when using $maxlength and socket is notclosed.
|
||||
indeyets [at] php [dot] net on #46049. (Arnaud)
|
||||
- Fixed stream_get_line() to behave as documented on non-blocking streams.
|
||||
(Arnaud)
|
||||
- Fixed endless loop in PDOStatement::debugDumpParams().
|
||||
@@ -103,103 +319,118 @@ PHP NEWS
|
||||
- Fixed ability to use "internal" heaps in extensions. (Arnaud, Dmitry)
|
||||
- Fixed weekdays adding/subtracting algorithm. (Derick)
|
||||
- Fixed some ambiguities in the date parser. (Derick)
|
||||
- Fixed a bug with the YYYY-MM format not resetting the day correctly. (Derick)
|
||||
- Fixed a bug with the YYYY-MM format not resetting the day correctly.
|
||||
(Derick)
|
||||
- Fixed a bug in the DateTime->modify() methods, it would not use the advanced
|
||||
relative time strings. (Derick)
|
||||
|
||||
23 Oct 2008, PHP 5.2.7RC2
|
||||
- Upgraded bundled libzip to 0.9.0. (Pierre)
|
||||
|
||||
- Fixed extraction of zip files or directories when the entry name is
|
||||
a relative path. (Pierre)
|
||||
- Fixed extraction of zip files or directories when the entry name is a
|
||||
relative path. (Pierre)
|
||||
- Fixed read or write errors for large zip archives. (Pierre)
|
||||
- Fixed security issues detailed in CVE-2008-2665 and CVE-2008-2666.
|
||||
(Christian Hoffmann)
|
||||
- Fixed simplexml asXML() not to lose encoding when dumping entire
|
||||
document to file. (Ilia)
|
||||
- Fixed a crash inside PDO when trying instantiate PDORow manually.
|
||||
(Felipe)
|
||||
- Fixed build failure of ext/mysqli with libmysql 6.0 - missing
|
||||
rplfunctions. (Andrey)
|
||||
- Fixed a regression when using strip_tags() and < is within an
|
||||
attribute.(Scott)
|
||||
- Fixed a crash on invalid method in ReflectionParameter constructor.
|
||||
(Christian Seiler)
|
||||
- Reverted fix for bug #44197 due to behaviour change in minor version.
|
||||
(Felipe)
|
||||
|
||||
- Fixed bug #46360 (TCP_NODELAY constant for socket_{get,set}_option).
|
||||
- Fixed bug #46732 (mktime.year description is wrong). (Derick)
|
||||
- Fixed bug #46696 (cURL fails in upload files with specified content-type).
|
||||
(Ilia)
|
||||
- Fixed bug #46673 (stream_lock call with wrong parameter). (Arnaud)
|
||||
- Fixed bug #46649 (Setting array element with that same array produces
|
||||
inconsistent results). (Arnaud)
|
||||
- Fixed bug #46626 (mb_convert_case does not handle apostrophe correctly).
|
||||
(Ilia)
|
||||
- Fixed bug #46543 (ibase_trans() memory leaks when using wrong parameters).
|
||||
(Felipe)
|
||||
- Fixed bug #46521 (Curl ZTS OpenSSL, error in config.m4 fragment).
|
||||
(jd at cpanel dot net)
|
||||
- Fixed bug #46496 (wddx_serialize treats input as ISO-8859-1). (Mark Karpeles)
|
||||
- Fixed bug #46427 (SoapClient() stumbles over its "stream_context" parameter).
|
||||
(Dmitry, Herman Radtke)
|
||||
- Fixed bug #46426 (offset parameter of stream_get_contents() does not
|
||||
workfor "0"). (Felipe)
|
||||
- Fixed bug #46406 (Unregistering nodeclass throws E_FATAL). (Rob)
|
||||
- Fixed bug #46389 (NetWare needs small patch for _timezone).
|
||||
(patch by guenter@php.net)
|
||||
- Fixed bug #46388 (stream_notification_callback inside of object destroys
|
||||
object variables). (Felipe)
|
||||
- Fixed bug #46381 (wrong $this passed to internal methods causes segfault).
|
||||
(Tony)
|
||||
- Fixed bug #46379 (Infinite loop when parsing '#' in one line file). (Arnaud)
|
||||
- Fixed bug #46366 (bad cwd with / as pathinfo). (Dmitry)
|
||||
- Fixed bug #46360 (TCP_NODELAY constant for socket_{get,set}_option).
|
||||
(bugs at trick dot vanstaveren dot us)
|
||||
- Fixed bug #46343 (IPv6 address filter accepts invalid address). (Ilia)
|
||||
- Fixed bug #46335 (DOMText::splitText doesn't handle multibyte characters).
|
||||
(Rob)
|
||||
- Fixed bug #46323 (compilation of simplexml for NetWare breaks).
|
||||
(Patch by guenter@php.net)
|
||||
- Fixed bug #46323 (compilation of simplexml for NetWare breaks).
|
||||
(Patch by guenter [at] php [dot] net)
|
||||
- Fixed bug #46319 (PHP sets default Content-Type header for HTTP 304
|
||||
response code, in cgi sapi). (Ilia)
|
||||
- Fixed bug #46313 (Magic quotes broke $_FILES). (Arnaud)
|
||||
- Fixed bug #46308 (Invalid write when changing property from inside getter).
|
||||
(Dmitry)
|
||||
- Fixed bug #46292 (PDO::setFetchMode() shouldn't requires the 2nd arg when
|
||||
- Fixed bug #46292 (PDO::setFetchMode() shouldn't requires the 2nd arg when
|
||||
using FETCH_CLASSTYPE). (Felipe)
|
||||
- Fixed bug #46274, #46249 (pdo_pgsql always fill in NULL for empty BLOB and
|
||||
- Fixed bug #46274, #46249 (pdo_pgsql always fill in NULL for empty BLOB and
|
||||
segfaults when returned by SELECT). (Felipe)
|
||||
- Fixed bug #46271 (local_cert option is not resolved to full path). (Ilia)
|
||||
- Fixed bug #46246 (difference between call_user_func(array($this, $method))
|
||||
and $this->$method()). (Dmitry)
|
||||
- Fixed bug #46139 (PDOStatement->setFetchMode() forgets FETCH_PROPS_LATE).
|
||||
(chsc at peytz dot dk, Felipe)
|
||||
- Fixed bug #46026 (bzip2.decompress/zlib.inflate filter tries to decompress
|
||||
after end of stream). (Keisial at gmail dot com, Greg)
|
||||
- Fixed bug #45722 (mb_check_encoding() crashes). (Moriyoshi)
|
||||
- Fixed bug #45522 (FCGI_GET_VALUES request does not return supplied values).
|
||||
(Arnaud)
|
||||
- Fixed bug #44251, #41125 (PDO + quote() + prepare() can result in segfault).
|
||||
(tsteiner at nerdclub dot net)
|
||||
- Fixed bug #43925 (Incorrect argument counter in prepared statements with
|
||||
pgsql). (Felipe)
|
||||
- Fixed bug #43723 (SOAP not sent properly from client for <choice>). (Dmitry)
|
||||
- Fixed bug #42862 (IMAP toolkit crash: rfc822.c legacy routine buffer
|
||||
overflow). (Fixes CVE-2008-2829) (Dmitry)
|
||||
- Fixed bug #42078 (pg_meta_data mix tables metadata from different schemas).
|
||||
(Felipe)
|
||||
- Fixed bug #37100 (data is returned truncated with BINARY CURSOR). (Tony)
|
||||
- Fixed bug #24679 (pg_* functions doesn't work using schema). (Felipe)
|
||||
|
||||
09 Oct 2008, PHP 5.2.7RC1
|
||||
- Reverted fix for bug #44197 due to behaviour change in minor version.
|
||||
(Felipe)
|
||||
|
||||
- Added "PHP_INI_SCAN_DIR" environment variable which can be used to either
|
||||
disable or change the compile time ini scan directory (FR #45114). (Jani)
|
||||
|
||||
- Fixed security issues detailed in CVE-2008-2665 and CVE-2008-2666.
|
||||
(Christian Hoffmann)
|
||||
- Fixed simplexml asXML() not to lose encoding when dumping entire document
|
||||
to file. (Ilia)
|
||||
- Fixed a crash inside PDO when trying instantiate PDORow manually. (Felipe)
|
||||
- Fixed build failure of ext/mysqli with libmysql 6.0 - missing rpl
|
||||
functions. (Andrey)
|
||||
- Fixed a regression when using strip_tags() and < is within an attribute.
|
||||
(Scott)
|
||||
- Fixed a crash on invalid method in ReflectionParameter constructor.
|
||||
(Christian Seiler)
|
||||
- Fixed bug #46247 (ibase_set_event_handler() is allowing to pass callback
|
||||
without event). (Felipe)
|
||||
- Fixed bug #46215 (json_encode mutates its parameter and has some
|
||||
- Fixed bug #46246 (difference between call_user_func(array($this, $method))
|
||||
and $this->$method()). (Dmitry)
|
||||
- Fixed bug #46222 (ArrayObject EG(uninitialized_var_ptr) overwrite).
|
||||
(Etienne)
|
||||
- Fixed bug #46215 (json_encode mutates its parameter and has some
|
||||
class-specific state). (Felipe)
|
||||
- Fixed bug #46206 (pg_query_params/pg_execute convert passed values to
|
||||
strings). (Ilia)
|
||||
- Fixed bug #46191 (BC break: DOMDocument saveXML() doesn't accept null). (Rob)
|
||||
- Fixed bug #46191 (BC break: DOMDocument saveXML() doesn't accept null).
|
||||
(Rob)
|
||||
- Fixed bug #46164 (stream_filter_remove() closes the stream). (Arnaud)
|
||||
- Fixed bug #46157 (PDOStatement::fetchObject prototype error). (Felipe)
|
||||
- Fixed bug #46147 (after stream seek, appending stream filter reads
|
||||
- Fixed bug #46147 (after stream seek, appending stream filter reads
|
||||
incorrect data). (Greg)
|
||||
- Fixed bug #46139 (PDOStatement->setFetchMode() forgets FETCH_PROPS_LATE).
|
||||
(chsc at peytz dot dk, Felipe)
|
||||
- Fixed bug #46127 (php_openssl_tcp_sockop_accept forgets to set context
|
||||
on accepted stream) (Mark Karpeles, Pierre)
|
||||
- Fixed bug #46110 (XMLWriter - openmemory() and openuri() leak memory on
|
||||
multiple calls). (Ilia)
|
||||
- Fixed bug #46088 (RegexIterator::accept - segfault). (Felipe)
|
||||
- Fixed bug #46059 (Compile failure under IRIX 6.5.30 building posix.c).
|
||||
- Fixed bug #46082 (stream_set_blocking() can cause a crash in some
|
||||
circumstances). (Felipe)
|
||||
- Fixed bug #46064 (Exception when creating ReflectionProperty object
|
||||
on dynamicly created property). (Felipe)
|
||||
- Fixed bug #46059 (Compile failure under IRIX 6.5.30 building posix.c).
|
||||
(Arnaud)
|
||||
- Fixed bug #46053 (SplFileObject::seek - Endless loop). (Arnaud)
|
||||
- Fixed bug #46051 (SplFileInfo::openFile - memory overlap). (Arnaud)
|
||||
- Fixed bug #46047 (SimpleXML converts empty nodes into object with nested
|
||||
array). (Rob)
|
||||
- Fixed bug #46047 (SimpleXML converts empty nodes into object with
|
||||
nested array). (Rob)
|
||||
- Fixed bug #46031 (Segfault in AppendIterator::next). (Arnaud)
|
||||
- Fixed bug #46029 (Segfault in DOMText when using with Reflection). (Rob)
|
||||
- Fixed bug #46010 (warnings incorrectly generated for iv in ecb mode).
|
||||
- Fixed bug #46026 (bzip2.decompress/zlib.inflate filter tries to decompress
|
||||
after end of stream). (Keisial at gmail dot com, Greg)
|
||||
- Fixed bug #46024 (stream_select() doesn't return the correct number).
|
||||
(Arnaud)
|
||||
- Fixed bug #46010 (warnings incorrectly generated for iv in ecb mode).
|
||||
(Felipe)
|
||||
- Fixed bug #46003 (isset on nonexisting node return unexpected results). (Rob)
|
||||
- Fixed bug #45956 (parse_ini_file() does not return false with syntax errors
|
||||
in parsed file). (Jani)
|
||||
- Fixed bug #45901 (wddx_serialize_value crash with SimpleXMLElement object).
|
||||
(Rob)
|
||||
- Fixed bug #45862 (get_class_vars is inconsistent with 'protected' and
|
||||
- Fixed bug #45862 (get_class_vars is inconsistent with 'protected' and
|
||||
'private' variables). (ilewis at uk dot ibm dot com, Felipe)
|
||||
- Fixed bug #45860 (header() function fails to correctly replace all Status
|
||||
lines). (Dmitry)
|
||||
@@ -208,6 +439,7 @@ PHP NEWS
|
||||
an error). (Felipe)
|
||||
- Fixed bug #45751 (Using auto_prepend_file crashes (out of scope stack address
|
||||
use)). (basant dot kukreja at sun dot com)
|
||||
- Fixed bug #45722 (mb_check_encoding() crashes). (Moriyoshi)
|
||||
- Fixed bug #45705 (rfc822_parse_adrlist() modifies passed address parameter).
|
||||
(Jani)
|
||||
- Fixed bug #45691 (Some per-dir or runtime settings may leak into other
|
||||
@@ -219,91 +451,140 @@ PHP NEWS
|
||||
- Fixed bug #45568 (ISAPI doesn't properly clear auth_digest in header).
|
||||
(Patch by: navara at emclient dot com)
|
||||
- Fixed bug #45556 (Return value from callback isn't freed). (Felipe)
|
||||
- Fixed bug #45555 (Segfault with invalid non-string as
|
||||
- Fixed bug #45555 (Segfault with invalid non-string as
|
||||
register_introspection_callback). (Christian Seiler)
|
||||
- Fixed bug #45553 (Using XPath to return values for attributes with a
|
||||
- Fixed bug #45553 (Using XPath to return values for attributes with a
|
||||
namespace does not work). (Rob)
|
||||
- Fixed bug #45486 (mb_send_mail(); header 'Content-Type: text/plain; charset='
|
||||
parsing incorrect). (Felipe)
|
||||
- Fixed bug #45529 (new DateTimeZone() and date_create()->getTimezone() behave
|
||||
different). (Derick)
|
||||
- Fixed bug #45522 (FCGI_GET_VALUES request does not return supplied values).
|
||||
(Arnaud)
|
||||
- Fixed bug #45486 (mb_send_mail(); header 'Content-Type: text/plain; charset='
|
||||
parsing incorrect). (Felipe)
|
||||
- Fixed bug #45485 (strip_tags and <?XML tag). (Felipe)
|
||||
- Fixed bug #45460 (imap patch for fromlength fix in imap_headerinfo doesn't
|
||||
- Fixed bug #45460 (imap patch for fromlength fix in imap_headerinfo doesn't
|
||||
accept lengths of 1024). (Felipe, andrew at lifescale dot com)
|
||||
- Fixed bug #45449 (filesize() regression using ftp wrapper).
|
||||
- Fixed bug #45449 (filesize() regression using ftp wrapper).
|
||||
(crrodriguez at suse dot de)
|
||||
- Fixed bug #45423 (fastcgi parent process doesn't invoke php_module_shutdown
|
||||
before shutdown) (basant dot kukreja at sun dot com)
|
||||
- Fixed bug #45406 (session.serialize_handler declared by shared extension
|
||||
fails). (Kalle, oleg dot grenrus at dynamoid dot com)
|
||||
- Fixed bug #45405 (snmp extension memory leak). (Federico Cuello, Rodrigo
|
||||
Campos)
|
||||
- Fixed bug #45392 (ob_start()/ob_end_clean() and memory_limit). (Arnaud)
|
||||
- Fixed bug #45406 (session.serialize_handler declared by shared extension fails).
|
||||
(Kalle, oleg dot grenrus at dynamoid dot com)
|
||||
- Fixed bug #45405 (snmp extension memory leak).
|
||||
(Federico Cuello, Rodrigo Campos)
|
||||
- Fixed bug #45382 (timeout bug in stream_socket_enable_crypto). (Ilia)
|
||||
- Fixed bug #45373 (php crash on query with errors in params). (Felipe)
|
||||
- Fixed bug #45352 (Segmentation fault because of tick function on second
|
||||
request). (Dmitry)
|
||||
- Fixed bug #45312 (Segmentation fault on second request for array functions).
|
||||
(Dmitry)
|
||||
- Fixed bug #45303 (Opening php:// wrapper in append mode results in a warning).
|
||||
(Arnaud)
|
||||
- Fixed bug #45251 (double free or corruption with setAttributeNode()). (Rob)
|
||||
- Fixed bug #45226 and #18916 (xmlrpc_set_type() segfaults and wrong behavior
|
||||
- Fixed bug #45226 and #18916 (xmlrpc_set_type() segfaults and wrong behavior
|
||||
with valid ISO8601 date string). (Jeff Lawsons)
|
||||
- Fixed bug #45220 (curl_read callback returns -1 when needs to return
|
||||
- Fixed bug #45220 (curl_read callback returns -1 when needs to return
|
||||
size_t (unsigned)). (Felipe)
|
||||
- Fixed bug #45181 (chdir() should clear relative entries in stat cache).
|
||||
- Fixed bug #45181 (chdir() should clear relative entries in stat cache).
|
||||
(Arnaud)
|
||||
- Fixed bug #45178 (memory corruption on assignment result of "new" by
|
||||
reference). (Dmitry)
|
||||
- Fixed bug #45166 (substr() overflow changes). (Felipe)
|
||||
- Fixed bug #45151 (Crash with URI/file..php (filename contains 2 dots)).
|
||||
(Fixes CVE-2008-3660) (Dmitry)
|
||||
- Fixed bug #45139 (ReflectionProperty returns incorrect declaring class).
|
||||
(Felipe)
|
||||
- Fixed bug #45124 ($_FILES['upload']['size'] sometimes return zero and
|
||||
sometimes the filesize). (Arnaud)
|
||||
- Fixed bug #45028 (CRC32 output endianness is different between crc32()
|
||||
and hash()). (Tony)
|
||||
- Fixed bug #45124 ($_FILES['upload']['size'] sometimes return zero and some
|
||||
times the filesize). (Arnaud)
|
||||
- Fixed bug #45028 (CRC32 output endianness is different between crc32() and
|
||||
hash()). (Tony)
|
||||
- Fixed bug #45004 (pg_insert() does not accept 4 digit timezone format).
|
||||
(Ilia)
|
||||
- Fixed bug #44991 (Compile Failure With freetds0.82).
|
||||
- Fixed bug #44991 (Compile Failure With freetds0.82).
|
||||
(jklowden at freetds dot org, matthias at dsx dot at)
|
||||
- Fixed bug #44938 (gettext functions crash with overly long domain).
|
||||
(Christian Schneider, Ilia)
|
||||
- Fixed bug #44925 (preg_grep() modifies input array). (Nuno)
|
||||
- Fixed bug #44891 Memory leak using registerPHPFunctions and XSLT Variable
|
||||
- Fixed bug #44900 (OpenSSL extension fails to link with OpenSSL 0.9.6).
|
||||
(jd at cpanel dot net, Pierre)
|
||||
- Fixed bug #44891 Memory leak using registerPHPFunctions and XSLT Variable
|
||||
as function parameter. (Rob)
|
||||
- Fixed bug #44882 (SOAP extension object decoding bug). (Dmitry)
|
||||
- Fixed bug #44830 (Very minor issue with backslash in heredoc). (Matt)
|
||||
- Fixed bug #44811 (Improve error message when creating a new SoapClient that
|
||||
contains invalid data). (Markus Fischer, David C)
|
||||
- Fixed bug #44818 (php://memory writeable when opened read only). (Arnaud)
|
||||
- Fixed bug #44811 (Improve error message when creating a new SoapClient
|
||||
that contains invalid data). (Markus Fischer, David C)
|
||||
- Fixed bug #44798 (Memory leak assigning value to attribute). (Ilia)
|
||||
- Fixed bug #44716 (Progress notifications incorrect). (Hannes)
|
||||
- Fixed bug #44712 (stream_context_set_params segfaults on invalid arguments).
|
||||
(Hannes)
|
||||
- Fixed bug #44617 (wrong HTML entity output when substitute_character=entity).
|
||||
(Moriyoshi)
|
||||
- Fixed bug #44607 (stream_get_line unable to correctly identify the "ending"
|
||||
in the stream content). (Arnaud)
|
||||
- Fixed bug #44425 (Extending PDO/MySQL class with a __call() function doesn't
|
||||
work). (Johannes)
|
||||
- Fixed bug #44327 (PDORow::queryString property & numeric offsets / Crash).
|
||||
(Felipe)
|
||||
- Fixed bug #44251, #41125 (PDO + quote() + prepare() can result in segfault).
|
||||
(tsteiner at nerdclub dot net)
|
||||
- Fixed bug #44246 (closedir() accepts a file resource opened by fopen()).
|
||||
(Dmitry, Tony)
|
||||
- Fixed bug #44182 (extract($a, EXTR_REFS) can fail to split copy-on-write
|
||||
references). (robin_fernandes at uk dot ibm dot com)
|
||||
- Fixed bug #44181 (extract($a, EXTR_OVERWRITE|EXTR_REFS) can fail to create
|
||||
references to $a). (robin_fernandes at uk dot ibm dot com)
|
||||
- Fixed bug #44127 (UNIX abstract namespace socket connect does not work).
|
||||
(Jani)
|
||||
- Fixed bug #43993 (mb_substr_count() behaves differently to substr_count() with
|
||||
overlapping needles). (Moriyoshi)
|
||||
- Fixed bug #43993 (mb_substr_count() behaves differently to substr_count()
|
||||
with overlapping needles). (Moriyoshi)
|
||||
- Fixed Bug #43958 (class name added into the error message). (Dmitry)
|
||||
- Fixed bug #43941 (json_encode silently cuts non-UTF8 strings). (Stas)
|
||||
- Fixed bug #43668 (Added odbc.default_cursortype to control the ODBC
|
||||
cursormodel). (Patrick)
|
||||
- Fixed bug #43666 (Fixed code to use ODBC 3.52 datatypes for 64bit systems).
|
||||
(Patrick)
|
||||
- Fixed bug #43925 (Incorrect argument counter in prepared statements with
|
||||
pgsql). (Felipe)
|
||||
- Fixed bug #43731 (socket_getpeername: cannot use on stdin with inetd).
|
||||
(Arnaud)
|
||||
- Fixed bug #43723 (SOAP not sent properly from client for <choice>). (Dmitry)
|
||||
- Fixed bug #43668 (Added odbc.default_cursortype to control the ODBCcursor
|
||||
model). (Patrick)
|
||||
- Fixed bug #43666 (Fixed code to use ODBC 3.52 datatypes for 64bit
|
||||
systems). (Patrick)
|
||||
- Fixed bug #43540 (rfc1867 handler newlength problem). (Arnaud)
|
||||
- Fixed bug #43452 (strings containing a weekday, or a number plus weekday
|
||||
behaved incorrect of the current day-of-week was the same as the one in the
|
||||
phrase). (Derick)
|
||||
- Fixed bug #43353 (wrong detection of 'data' wrapper causes notice).
|
||||
(gk at gknw dot de, Arnaud)
|
||||
- Fixed bug #43053 (Regression: some numbers shown in scientific notation).
|
||||
(int-e at gmx dot de)
|
||||
- Fixed bug #43045 (SOAP encoding violation on "INF" for type double/float).
|
||||
(Dmitry)
|
||||
- Fixed bug #42862 (IMAP toolkit crash: rfc822.c legacy routine buffer
|
||||
overflow). (Fixes CVE-2008-2829) (Dmitry)
|
||||
- Fixed bug #42855 (dns_get_record() doesn't return all text from TXT record).
|
||||
(a dot u dot savchuk at gmail dot com)
|
||||
- Fixed bug #42737 (preg_split('//u') triggers a E_NOTICE with newlines).
|
||||
(Nuno)
|
||||
- Fixed bug #42718 (FILTER_UNSAFE_RAW not applied when configured as default
|
||||
filter). (Arnaud)
|
||||
- Fixed bug #42604 ("make test" fails with --with-config-file-scan-dir=path).
|
||||
(Jani)
|
||||
- Fixed bug #42318 (problem with nm on AIX, not finding object files). (Dmitry)
|
||||
- Fixed bug #42473 (ob_start php://output and headers). (Arnaud)
|
||||
- Fixed bug #42318 (problem with nm on AIX, not finding object files).
|
||||
(Dmitry)
|
||||
- Fixed bug #42294 (Unified solution for round() based on C99 round). (Ilia)
|
||||
- Fixed bug #42078 (pg_meta_data mix tables metadata from different schemas).
|
||||
(Felipe)
|
||||
- Fixed bug #41348 (OCI8: allow compilation with Oracle 8.1). (Chris Jones)
|
||||
- Fixed bug #41033 (enable signing with DSA keys.
|
||||
(gordyf at google dot com, Pierre)
|
||||
- Fixed bug #37100 (data is returned truncated with BINARY CURSOR). (Tony)
|
||||
- Fixed bug #30312 (crash in sybase_unbuffered_query() function). (Timm)
|
||||
- Fixed bug #24679 (pg_* functions doesn't work using schema). (Felipe)
|
||||
- Fixed bug #14962 (PECL) (::extractTo 2nd argument is not really optional)
|
||||
(Mark van Der Velden)
|
||||
- Fixed bug #14032 (Mail() always returns false but mail is sent). (Mikko)
|
||||
- Fixed bug #46222 (ArrayObject EG(uninitialized_var_ptr) overwrite).
|
||||
(Etienne)
|
||||
|
||||
|
||||
01 May 2008, PHP 5.2.6
|
||||
- Fixed two possible crashes inside posix extension (Tony)
|
||||
|
||||
+5
-4
@@ -32,11 +32,12 @@ sapi/cli/php [-c /path/to/php.ini] run-tests.php [ext/foo/tests/GLOB]
|
||||
|
||||
[Which "php" executable "make test" look for]
|
||||
---------------------------------------------
|
||||
You must use TEST_PHP_EXECUTABLE environment variable to explicitly
|
||||
select the php executable to be used to run the tests. That can either
|
||||
be the CLI or CGI executable.
|
||||
If you are running the run-tests.php script from the command line (as above)
|
||||
you must set the TEST_PHP_EXECUTABLE environment variable to explicitly
|
||||
select the PHP executable that is to be tested, that is, used to run the test scripts.
|
||||
|
||||
"make test" executes "run-tests.php" script with "php" binary. Some
|
||||
If you run the tests using make test, the PHP CLI and CGI executables are
|
||||
automatically set for you. "make test" executes "run-tests.php" script with the CLI binary. Some
|
||||
test scripts such as session must be executed by CGI SAPI. Therefore,
|
||||
you must build PHP with CGI SAPI to perform all tests.
|
||||
|
||||
|
||||
+1
-1
@@ -2,7 +2,7 @@
|
||||
+----------------------------------------------------------------------+
|
||||
| Thread Safe Resource Manager |
|
||||
+----------------------------------------------------------------------+
|
||||
| Copyright (c) 1999-2008, Andi Gutmans, Sascha Schumann, Zeev Suraski |
|
||||
| Copyright (c) 1999-2009, Andi Gutmans, Sascha Schumann, Zeev Suraski |
|
||||
| This source file is subject to the TSRM license, that is bundled |
|
||||
| with this package in the file LICENSE |
|
||||
+----------------------------------------------------------------------+
|
||||
|
||||
+1
-1
@@ -2,7 +2,7 @@
|
||||
+----------------------------------------------------------------------+
|
||||
| Thread Safe Resource Manager |
|
||||
+----------------------------------------------------------------------+
|
||||
| Copyright (c) 1999-2008, Andi Gutmans, Sascha Schumann, Zeev Suraski |
|
||||
| Copyright (c) 1999-2009, Andi Gutmans, Sascha Schumann, Zeev Suraski |
|
||||
| This source file is subject to the TSRM license, that is bundled |
|
||||
| with this package in the file LICENSE |
|
||||
+----------------------------------------------------------------------+
|
||||
|
||||
+1
-1
@@ -2,7 +2,7 @@
|
||||
+----------------------------------------------------------------------+
|
||||
| PHP Version 5 |
|
||||
+----------------------------------------------------------------------+
|
||||
| Copyright (c) 1997-2008 The PHP Group |
|
||||
| Copyright (c) 1997-2009 The PHP Group |
|
||||
+----------------------------------------------------------------------+
|
||||
| This source file is subject to version 3.01 of the PHP license, |
|
||||
| that is bundled with this package in the file LICENSE, and is |
|
||||
|
||||
+1
-1
@@ -2,7 +2,7 @@
|
||||
+----------------------------------------------------------------------+
|
||||
| PHP Version 5 |
|
||||
+----------------------------------------------------------------------+
|
||||
| Copyright (c) 1997-2008 The PHP Group |
|
||||
| Copyright (c) 1997-2009 The PHP Group |
|
||||
+----------------------------------------------------------------------+
|
||||
| This source file is subject to version 3.01 of the PHP license, |
|
||||
| that is bundled with this package in the file LICENSE, and is |
|
||||
|
||||
@@ -2,7 +2,7 @@
|
||||
+----------------------------------------------------------------------+
|
||||
| PHP Version 5 |
|
||||
+----------------------------------------------------------------------+
|
||||
| Copyright (c) 1997-2008 The PHP Group |
|
||||
| Copyright (c) 1997-2009 The PHP Group |
|
||||
+----------------------------------------------------------------------+
|
||||
| This source file is subject to version 3.01 of the PHP license, |
|
||||
| that is bundled with this package in the file LICENSE, and is |
|
||||
|
||||
@@ -2,7 +2,7 @@
|
||||
+----------------------------------------------------------------------+
|
||||
| PHP Version 5 |
|
||||
+----------------------------------------------------------------------+
|
||||
| Copyright (c) 1997-2008 The PHP Group |
|
||||
| Copyright (c) 1997-2009 The PHP Group |
|
||||
+----------------------------------------------------------------------+
|
||||
| This source file is subject to version 3.01 of the PHP license, |
|
||||
| that is bundled with this package in the file LICENSE, and is |
|
||||
|
||||
+1
-1
@@ -2,7 +2,7 @@
|
||||
+----------------------------------------------------------------------+
|
||||
| PHP Version 5 |
|
||||
+----------------------------------------------------------------------+
|
||||
| Copyright (c) 1997-2008 The PHP Group |
|
||||
| Copyright (c) 1997-2009 The PHP Group |
|
||||
+----------------------------------------------------------------------+
|
||||
| This source file is subject to version 3.01 of the PHP license, |
|
||||
| that is bundled with this package in the file LICENSE, and is |
|
||||
|
||||
+1
-1
@@ -2,7 +2,7 @@
|
||||
+----------------------------------------------------------------------+
|
||||
| PHP Version 5 |
|
||||
+----------------------------------------------------------------------+
|
||||
| Copyright (c) 1997-2008 The PHP Group |
|
||||
| Copyright (c) 1997-2009 The PHP Group |
|
||||
+----------------------------------------------------------------------+
|
||||
| This source file is subject to version 3.01 of the PHP license, |
|
||||
| that is bundled with this package in the file LICENSE, and is |
|
||||
|
||||
+1
-1
@@ -2,7 +2,7 @@
|
||||
+----------------------------------------------------------------------+
|
||||
| Zend Engine |
|
||||
+----------------------------------------------------------------------+
|
||||
| Copyright (c) 1998-2008 Zend Technologies Ltd. (http://www.zend.com) |
|
||||
| Copyright (c) 1998-2009 Zend Technologies Ltd. (http://www.zend.com) |
|
||||
+----------------------------------------------------------------------+
|
||||
| This source file is subject to version 2.00 of the Zend license, |
|
||||
| that is bundled with this package in the file LICENSE, and is |
|
||||
|
||||
+1
-1
@@ -4,7 +4,7 @@ dnl This file contains local autoconf functions.
|
||||
|
||||
AC_DEFUN([LIBZEND_BISON_CHECK],[
|
||||
# we only support certain bison versions
|
||||
bison_version_list="1.28 1.35 1.75 1.875 2.0 2.1 2.2 2.3 2.4"
|
||||
bison_version_list="1.28 1.35 1.75 1.875 2.0 2.1 2.2 2.3 2.4 2.4.1"
|
||||
|
||||
# for standalone build of Zend Engine
|
||||
test -z "$SED" && SED=sed
|
||||
|
||||
@@ -0,0 +1,39 @@
|
||||
--TEST--
|
||||
__call() for private/protected methods
|
||||
--FILE--
|
||||
<?php
|
||||
|
||||
class A {
|
||||
private $var1 = 'var1 value';
|
||||
protected $var2 = 'var2 value';
|
||||
|
||||
private function func1()
|
||||
{
|
||||
return "in func1";
|
||||
}
|
||||
protected function func2()
|
||||
{
|
||||
return "in func2";
|
||||
}
|
||||
public function __get($var)
|
||||
{
|
||||
return $this->$var;
|
||||
}
|
||||
public function __call($func, array $args = array())
|
||||
{
|
||||
return call_user_func_array(array($this, $func), $args);
|
||||
}
|
||||
}
|
||||
|
||||
$a = new A();
|
||||
echo $a->var1,"\n";
|
||||
echo $a->var2,"\n";
|
||||
echo $a->func1(),"\n";
|
||||
echo $a->func2(),"\n";
|
||||
|
||||
?>
|
||||
--EXPECTF--
|
||||
var1 value
|
||||
var2 value
|
||||
in func1
|
||||
in func2
|
||||
@@ -0,0 +1,21 @@
|
||||
--TEST--
|
||||
Trigger __call() in lieu of non visible methods when called via a callback.
|
||||
--FILE--
|
||||
<?php
|
||||
class C {
|
||||
protected function prot() { }
|
||||
private function priv() { }
|
||||
public function __call($name, $args) {
|
||||
echo "In __call() for method $name()\n";
|
||||
}
|
||||
}
|
||||
|
||||
$c = new C;
|
||||
call_user_func(array($c, 'none'));
|
||||
call_user_func(array($c, 'prot'));
|
||||
call_user_func(array($c, 'priv'));
|
||||
?>
|
||||
--EXPECTF--
|
||||
In __call() for method none()
|
||||
In __call() for method prot()
|
||||
In __call() for method priv()
|
||||
@@ -0,0 +1,82 @@
|
||||
--TEST--
|
||||
Bug #39018 (Error control operator '@' fails to suppress "Uninitialized string offset")
|
||||
--FILE--
|
||||
<?php
|
||||
|
||||
error_reporting(E_ALL);
|
||||
|
||||
$a = 'foo';
|
||||
$a[11111111111];
|
||||
|
||||
$a = '';
|
||||
|
||||
$a[0];
|
||||
|
||||
print $a[0]; // 12
|
||||
|
||||
$a[-11111111111111111111111];
|
||||
|
||||
print $a[-11111111111111111111111]; // 16
|
||||
|
||||
$a[-0];
|
||||
|
||||
$x = 'test';
|
||||
|
||||
@$x[4];
|
||||
|
||||
@$y = $x[4];
|
||||
|
||||
@('a' == $x[4]);
|
||||
|
||||
$x[4] == 'a'; // 28
|
||||
|
||||
@$x[4] == 'a';
|
||||
|
||||
(@$x[4]) == 'a';
|
||||
|
||||
($x[4]) == 'a'; // 34
|
||||
|
||||
(@($x[4])) == 'a';
|
||||
|
||||
(($x[4])) == 'a'; // 38
|
||||
|
||||
@($x[4]) == 'a';
|
||||
|
||||
($x[4]) == 'a'; // 42
|
||||
|
||||
@($x[4] == 'a');
|
||||
|
||||
($x[4] == 'a'); // 46
|
||||
|
||||
$y = 'foobar';
|
||||
|
||||
$y[12.2];
|
||||
|
||||
print $y[12.2]; // 52
|
||||
|
||||
$y[3.5];
|
||||
|
||||
print $y[3.5]; // 56
|
||||
|
||||
print "\nDone\n";
|
||||
|
||||
?>
|
||||
--EXPECTF--
|
||||
|
||||
Notice: Uninitialized string offset: 0 in %s on line 12
|
||||
|
||||
Notice: Uninitialized string offset: -%d in %s on line 16
|
||||
|
||||
Notice: Uninitialized string offset: 4 in %s on line 28
|
||||
|
||||
Notice: Uninitialized string offset: 4 in %s on line 34
|
||||
|
||||
Notice: Uninitialized string offset: 4 in %s on line 38
|
||||
|
||||
Notice: Uninitialized string offset: 4 in %s on line 42
|
||||
|
||||
Notice: Uninitialized string offset: 4 in %s on line 46
|
||||
|
||||
Notice: Uninitialized string offset: 12 in %s on line 52
|
||||
b
|
||||
Done
|
||||
@@ -0,0 +1,18 @@
|
||||
--TEST--
|
||||
Bug #39018 [2] (Error control operator '@' fails to suppress "Uninitialized string offset")
|
||||
--FILE--
|
||||
<?php
|
||||
|
||||
error_reporting(E_ALL);
|
||||
|
||||
$foo = 'test';
|
||||
$x = @$foo[6];
|
||||
|
||||
print @($foo[100] + $foo[130]);
|
||||
|
||||
print "\nDone\n";
|
||||
|
||||
?>
|
||||
--EXPECT--
|
||||
0
|
||||
Done
|
||||
@@ -6,4 +6,6 @@ Bug #39304 (Segmentation fault with list unpacking of string offset)
|
||||
list($a, $b) = $s[0];
|
||||
?>
|
||||
--EXPECTF--
|
||||
Fatal error: Cannot use string offset as an array in %sbug39304.php on line 3
|
||||
Notice: Uninitialized string offset: 0 in %s on line %d
|
||||
|
||||
Fatal error: Cannot use string offset as an array in %sbug39304.php on line %d
|
||||
@@ -8,7 +8,7 @@ if (extension_loaded("readline")) die("skip Test doesn't support readline");
|
||||
--FILE--
|
||||
<?php
|
||||
$php = getenv('TEST_PHP_EXECUTABLE');
|
||||
$cmd = "$php -d memory_limit=4M -a ".dirname(__FILE__)."/bug40236.inc";
|
||||
$cmd = "\"$php\" -n -d memory_limit=4M -a \"".dirname(__FILE__)."\"/bug40236.inc";
|
||||
echo `$cmd`;
|
||||
?>
|
||||
--EXPECTF--
|
||||
|
||||
@@ -8,4 +8,6 @@ $foo[3]->bar[1] = "bang";
|
||||
echo "ok\n";
|
||||
?>
|
||||
--EXPECTF--
|
||||
Notice: Uninitialized string offset: 3 in %s on line %d
|
||||
|
||||
Fatal error: Cannot use string offset as an object in %sbug41919.php on line %d
|
||||
@@ -0,0 +1,38 @@
|
||||
--TEST--
|
||||
bug #42143 (The constant NAN is reported as 0 on Windows build)
|
||||
--CREDITS--
|
||||
Venkat Raman Don
|
||||
--FILE--
|
||||
<?php
|
||||
echo "Testing NAN:\n";
|
||||
echo "NAN= ";
|
||||
var_dump(NAN);
|
||||
var_dump(tan(-1) == 123);
|
||||
var_dump(cos(-100) == "PHP String");
|
||||
var_dump(deg2rad(-5.6) == null);
|
||||
var_dump(sqrt(-0.1) == false);
|
||||
var_dump(sqrt(cos(M_PI)) == 0.1);
|
||||
var_dump(NAN);
|
||||
var_dump(is_nan(sqrt(-1.005)) == false);
|
||||
var_dump(is_nan(floor(1)) == true);
|
||||
var_dump(log10(-1) == log(-1));
|
||||
var_dump(log10(-1) != log10(-1));
|
||||
var_dump(is_finite(log10(-1)) == false);
|
||||
var_dump(NAN == NAN);
|
||||
?>
|
||||
--EXPECT--
|
||||
Testing NAN:
|
||||
NAN= float(NAN)
|
||||
bool(false)
|
||||
bool(false)
|
||||
bool(false)
|
||||
bool(false)
|
||||
bool(false)
|
||||
float(NAN)
|
||||
bool(false)
|
||||
bool(false)
|
||||
bool(false)
|
||||
bool(true)
|
||||
bool(true)
|
||||
bool(false)
|
||||
|
||||
@@ -1,7 +1,7 @@
|
||||
--TEST--
|
||||
Bug #45805 (Crash on throwing exception from error handler)
|
||||
--SKIPIF--
|
||||
<?php extension_loaded('reflection') or die('skip'); ?>
|
||||
<?php if (!extension_loaded('reflection') || !extension_loaded('spl')) print "skip"; ?>
|
||||
--FILE--
|
||||
<?php
|
||||
class PHPUnit_Util_ErrorHandler
|
||||
|
||||
@@ -0,0 +1,23 @@
|
||||
--TEST--
|
||||
Bug #45877 (Array key '2147483647' left as string)
|
||||
--INI--
|
||||
precision=20
|
||||
--FILE--
|
||||
<?php
|
||||
$keys = array(PHP_INT_MAX,
|
||||
(string) PHP_INT_MAX,
|
||||
(string) (-PHP_INT_MAX - 1),
|
||||
-PHP_INT_MAX - 1,
|
||||
(string) (PHP_INT_MAX + 1));
|
||||
|
||||
var_dump(array_fill_keys($keys, 1));
|
||||
?>
|
||||
--EXPECTF--
|
||||
array(3) {
|
||||
[%d7]=>
|
||||
int(1)
|
||||
[-%d8]=>
|
||||
int(1)
|
||||
["%d8"]=>
|
||||
int(1)
|
||||
}
|
||||
@@ -0,0 +1,38 @@
|
||||
--TEST--
|
||||
Bug #46701 (Creating associative array with long values in the key fails on 32bit linux)
|
||||
--SKIPIF--
|
||||
<?php if (PHP_INT_SIZE != 4) die('skip this test is for 32bit platforms only'); ?>
|
||||
--FILE--
|
||||
<?php
|
||||
|
||||
$test_array = array(
|
||||
0xcc5c4600 => 1,
|
||||
0xce331a00 => 2
|
||||
);
|
||||
$test_array[0xce359000] = 3;
|
||||
|
||||
var_dump($test_array);
|
||||
var_dump($test_array[0xce331a00]);
|
||||
|
||||
class foo {
|
||||
public $x;
|
||||
|
||||
public function __construct() {
|
||||
$this->x[0xce359000] = 3;
|
||||
var_dump($this->x);
|
||||
}
|
||||
}
|
||||
|
||||
new foo;
|
||||
|
||||
?>
|
||||
--EXPECT--
|
||||
array(1) {
|
||||
[-2147483648]=>
|
||||
int(3)
|
||||
}
|
||||
int(3)
|
||||
array(1) {
|
||||
[-2147483648]=>
|
||||
int(3)
|
||||
}
|
||||
@@ -0,0 +1,11 @@
|
||||
--TEST--
|
||||
Bug #47109 (Memory leak on $a->{"a"."b"} when $a is not an object)
|
||||
--FILE--
|
||||
<?php
|
||||
$a->{"a"."b"};
|
||||
?>
|
||||
--EXPECTF--
|
||||
Notice: Undefined variable: a in %sbug47109.php on line 2
|
||||
|
||||
Notice: Trying to get property of non-object in %sbug47109.php on line 2
|
||||
|
||||
@@ -0,0 +1,18 @@
|
||||
--TEST--
|
||||
Bug #47165 (Possible memory corruption when passing return value by reference)
|
||||
--FILE--
|
||||
<?php
|
||||
class Foo {
|
||||
var $bar = array();
|
||||
|
||||
static function bar() {
|
||||
static $instance = null;
|
||||
$instance = new Foo();
|
||||
return $instance->bar;
|
||||
}
|
||||
}
|
||||
extract(Foo::bar());
|
||||
echo "ok\n";
|
||||
?>
|
||||
--EXPECT--
|
||||
ok
|
||||
@@ -0,0 +1,26 @@
|
||||
--TEST--
|
||||
Bug #47353 (crash when creating a lot of objects in object destructor)
|
||||
--FILE--
|
||||
<?php
|
||||
|
||||
class A
|
||||
{
|
||||
function __destruct()
|
||||
{
|
||||
$myArray = array();
|
||||
|
||||
for($i = 1; $i <= 3000; $i++) {
|
||||
if(!isset($myArray[$i]))
|
||||
$myArray[$i] = array();
|
||||
$ref = & $myArray[$i];
|
||||
$ref[] = new stdClass();
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
$a = new A();
|
||||
|
||||
echo "Done\n";
|
||||
?>
|
||||
--EXPECTF--
|
||||
Done
|
||||
@@ -0,0 +1,9 @@
|
||||
--TEST--
|
||||
Bug #47704 (crashes on some "bad" operations with string offsets)
|
||||
--FILE--
|
||||
<?php
|
||||
$s = "abd";
|
||||
$s[0]->a += 1;
|
||||
?>
|
||||
--EXPECTF--
|
||||
Fatal error: Cannot use string offset as an object in %sbug47704.php on line %d
|
||||
@@ -0,0 +1,31 @@
|
||||
--TEST--
|
||||
Bug #47801 (__call() accessed via parent:: operator is provided incorrect method name)
|
||||
--FILE--
|
||||
<?php
|
||||
|
||||
class A
|
||||
{
|
||||
function __call($name, $args)
|
||||
{
|
||||
echo("magic method called: $name\n");
|
||||
}
|
||||
}
|
||||
|
||||
class B extends A
|
||||
{
|
||||
function getFoo()
|
||||
{
|
||||
parent::getFoo();
|
||||
}
|
||||
}
|
||||
|
||||
$a = new A();
|
||||
$a->getFoo();
|
||||
|
||||
$b = new B();
|
||||
$b->getFoo();
|
||||
|
||||
?>
|
||||
--EXPECT--
|
||||
magic method called: getFoo
|
||||
magic method called: getFoo
|
||||
@@ -0,0 +1,16 @@
|
||||
--TEST--
|
||||
Bug #47836 (array operator [] inconsistency when the array has PHP_INT_MAX index value)
|
||||
--FILE--
|
||||
<?php
|
||||
|
||||
$arr[PHP_INT_MAX] = 1;
|
||||
$arr[] = 2;
|
||||
|
||||
var_dump($arr);
|
||||
?>
|
||||
--EXPECTF--
|
||||
Warning: Cannot add element to the array as the next element is already occupied in %s on line 4
|
||||
array(1) {
|
||||
[%d]=>
|
||||
int(1)
|
||||
}
|
||||
@@ -0,0 +1,19 @@
|
||||
--TEST--
|
||||
Bug #47981 (error handler not called regardless)
|
||||
--INI--
|
||||
error_reporting=0
|
||||
--FILE--
|
||||
<?php
|
||||
function errh($errno, $errstr) {
|
||||
var_dump($errstr);
|
||||
}
|
||||
set_error_handler("errh");
|
||||
|
||||
interface a{}
|
||||
class b implements a { function f($a=1) {}}
|
||||
class c extends b {function f() {}}
|
||||
?>
|
||||
--EXPECTF--
|
||||
string(62) "Declaration of c::f() should be compatible with that of b::f()"
|
||||
|
||||
|
||||
@@ -0,0 +1,32 @@
|
||||
--TEST--
|
||||
Bug #48228 (crash when exception is thrown while passing function arguments)
|
||||
--FILE--
|
||||
<?php
|
||||
|
||||
function do_throw() {
|
||||
throw new Exception();
|
||||
}
|
||||
|
||||
class aa
|
||||
{
|
||||
function check()
|
||||
{
|
||||
}
|
||||
|
||||
function dosome()
|
||||
{
|
||||
$this->check(do_throw());
|
||||
}
|
||||
}
|
||||
$l_aa=new aa();
|
||||
|
||||
$l_aa->dosome();
|
||||
?>
|
||||
--EXPECTF--
|
||||
|
||||
Fatal error: Uncaught exception 'Exception' in %s
|
||||
Stack trace:
|
||||
#0 %s(%d): do_throw()
|
||||
#1 %s(%d): aa->dosome()
|
||||
#2 {main}
|
||||
thrown in %s
|
||||
@@ -0,0 +1,27 @@
|
||||
--TEST--
|
||||
Bug #48248 (SIGSEGV when access to private property via &__get)
|
||||
--FILE--
|
||||
<?php
|
||||
|
||||
class A
|
||||
{
|
||||
public function & __get($name)
|
||||
{
|
||||
return $this->test;
|
||||
}
|
||||
}
|
||||
|
||||
class B extends A
|
||||
{
|
||||
private $test;
|
||||
}
|
||||
|
||||
$b = new B;
|
||||
var_dump($b->test);
|
||||
|
||||
?>
|
||||
--EXPECTF--
|
||||
Notice: Undefined property: B::$test in %s on line %d
|
||||
|
||||
Notice: Only variable references should be returned by reference in %s on line %d
|
||||
NULL
|
||||
@@ -0,0 +1,30 @@
|
||||
--TEST--
|
||||
Bug #48408 (crash when exception is thrown while passing function arguments)
|
||||
--FILE--
|
||||
<?php
|
||||
class B{
|
||||
public function process($x){
|
||||
return $x;
|
||||
}
|
||||
}
|
||||
class C{
|
||||
public function generate($x){
|
||||
throw new Exception;
|
||||
}
|
||||
}
|
||||
$b = new B;
|
||||
$c = new C;
|
||||
try{
|
||||
$b->process($c->generate(0));
|
||||
}
|
||||
catch(Exception $e){
|
||||
$c->generate(0);
|
||||
}
|
||||
?>
|
||||
--EXPECTF--
|
||||
|
||||
Fatal error: Uncaught exception 'Exception' in %s
|
||||
Stack trace:
|
||||
#0 %s(%d): C->generate(0)
|
||||
#1 {main}
|
||||
thrown in %s
|
||||
@@ -0,0 +1,67 @@
|
||||
--TEST--
|
||||
Bug #48409 (crash when exception is thrown while passing function arguments)
|
||||
--FILE--
|
||||
<?php
|
||||
|
||||
class ABCException extends Exception {}
|
||||
|
||||
class BBB
|
||||
{
|
||||
public function xyz($d, $x)
|
||||
{
|
||||
if ($x == 34) {
|
||||
throw new ABCException;
|
||||
}
|
||||
return array('foo' => 'xyz');
|
||||
}
|
||||
}
|
||||
|
||||
class CCC
|
||||
{
|
||||
public function process($p)
|
||||
{
|
||||
return $p;
|
||||
}
|
||||
}
|
||||
|
||||
class AAA
|
||||
{
|
||||
public function func()
|
||||
{
|
||||
$b = new BBB;
|
||||
$c = new CCC;
|
||||
$i = 34;
|
||||
$item = array('foo' => 'bar');
|
||||
try {
|
||||
$c->process($b->xyz($item['foo'], $i));
|
||||
}
|
||||
catch(ABCException $e) {
|
||||
$b->xyz($item['foo'], $i);
|
||||
}
|
||||
} // end func();
|
||||
}
|
||||
|
||||
class Runner
|
||||
{
|
||||
public function run($x)
|
||||
{
|
||||
try {
|
||||
$x->func();
|
||||
}
|
||||
catch(ABCException $e) {
|
||||
throw new Exception;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
try {
|
||||
$runner = new Runner;
|
||||
$runner->run(new AAA);
|
||||
}
|
||||
catch(Exception $e) {
|
||||
die('Exception thrown');
|
||||
}
|
||||
|
||||
?>
|
||||
--EXPECT--
|
||||
Exception thrown
|
||||
@@ -0,0 +1,13 @@
|
||||
--TEST--
|
||||
Bug #48428 (crash when exception is thrown while passing function arguments)
|
||||
--FILE--
|
||||
<?php
|
||||
try {
|
||||
function x() { throw new Exception("ERROR"); }
|
||||
x(x());
|
||||
} catch(Exception $e) {
|
||||
echo($e -> getMessage());
|
||||
}
|
||||
?>
|
||||
--EXPECT--
|
||||
ERROR
|
||||
@@ -0,0 +1,30 @@
|
||||
--TEST--
|
||||
Testing Exception's methods
|
||||
--FILE--
|
||||
<?php
|
||||
|
||||
$x = new Exception;
|
||||
$x->gettraceasstring(1);
|
||||
$x->gettraceasstring();
|
||||
$x->__tostring(1);
|
||||
$x->gettrace(1);
|
||||
$x->getline(1);
|
||||
$x->getfile(1);
|
||||
$x->getmessage(1);
|
||||
$x->getcode(1);
|
||||
|
||||
?>
|
||||
--EXPECTF--
|
||||
Warning: Wrong parameter count for Exception::getTraceAsString() in %s on line %d
|
||||
|
||||
Warning: Wrong parameter count for Exception::__toString() in %s on line %d
|
||||
|
||||
Warning: Wrong parameter count for Exception::getTrace() in %s on line %d
|
||||
|
||||
Warning: Wrong parameter count for Exception::getLine() in %s on line %d
|
||||
|
||||
Warning: Wrong parameter count for Exception::getFile() in %s on line %d
|
||||
|
||||
Warning: Wrong parameter count for Exception::getMessage() in %s on line %d
|
||||
|
||||
Warning: Wrong parameter count for Exception::getCode() in %s on line %d
|
||||
@@ -0,0 +1,39 @@
|
||||
--TEST--
|
||||
function_exists function : basic functionality
|
||||
--FILE--
|
||||
<?php
|
||||
/*
|
||||
* proto bool function_exists(string function_name)
|
||||
* Function is implemented in Zend/zend_builtin_functions.c
|
||||
*/
|
||||
|
||||
echo "*** Testing function_exists() : basic functionality ***\n";
|
||||
|
||||
echo "Internal function: ";
|
||||
var_dump(function_exists('function_exists'));
|
||||
|
||||
echo "User defined function: ";
|
||||
function f() {}
|
||||
var_dump(function_exists('f'));
|
||||
|
||||
echo "Case sensitivity: ";
|
||||
var_dump(function_exists('F'));
|
||||
|
||||
echo "Non existent function: ";
|
||||
var_dump(function_exists('g'));
|
||||
|
||||
echo "Method: ";
|
||||
Class C {
|
||||
static function f() {}
|
||||
}
|
||||
var_dump(function_exists('C::f'));
|
||||
?>
|
||||
===Done===
|
||||
--EXPECT--
|
||||
*** Testing function_exists() : basic functionality ***
|
||||
Internal function: bool(true)
|
||||
User defined function: bool(true)
|
||||
Case sensitivity: bool(true)
|
||||
Non existent function: bool(false)
|
||||
Method: bool(false)
|
||||
===Done===
|
||||
@@ -0,0 +1,37 @@
|
||||
--TEST--
|
||||
Test function_exists() function : error conditions
|
||||
--INI--
|
||||
--FILE--
|
||||
<?php
|
||||
/*
|
||||
* proto bool function_exists(string function_name)
|
||||
* Function is implemented in Zend/zend_builtin_functions.c
|
||||
*/
|
||||
|
||||
echo "*** Testing function_exists() : error conditions ***\n";
|
||||
|
||||
$arg_0 = "ABC";
|
||||
$extra_arg = 1;
|
||||
|
||||
echo "\nToo many arguments\n";
|
||||
var_dump(function_exists($arg_0, $extra_arg));
|
||||
|
||||
echo "\nToo few arguments\n";
|
||||
var_dump(function_exists());
|
||||
|
||||
?>
|
||||
===Done===
|
||||
--EXPECTF--
|
||||
*** Testing function_exists() : error conditions ***
|
||||
|
||||
Too many arguments
|
||||
|
||||
Warning: Wrong parameter count for function_exists() in %s on line %d
|
||||
NULL
|
||||
|
||||
Too few arguments
|
||||
|
||||
Warning: Wrong parameter count for function_exists() in %s on line %d
|
||||
NULL
|
||||
===Done===
|
||||
|
||||
@@ -0,0 +1,135 @@
|
||||
--TEST--
|
||||
Test function_exists() function : usage variations - test values for $str argument
|
||||
--FILE--
|
||||
<?php
|
||||
|
||||
/*
|
||||
* proto bool function_exists(string function_name)
|
||||
* Function is implemented in Zend/zend_builtin_functions.c
|
||||
*/
|
||||
|
||||
echo "*** Testing function_exists() function: with unexpected inputs for 'str' argument ***\n";
|
||||
|
||||
//get an unset variable
|
||||
$unset_var = 'string_val';
|
||||
unset($unset_var);
|
||||
|
||||
//defining a class
|
||||
class sample {
|
||||
public function __toString() {
|
||||
return "sample object";
|
||||
}
|
||||
}
|
||||
|
||||
//getting the resource
|
||||
$file_handle = fopen(__FILE__, "r");
|
||||
|
||||
// array with different values for $str
|
||||
$inputs = array (
|
||||
|
||||
// integer values
|
||||
0,
|
||||
1,
|
||||
255,
|
||||
256,
|
||||
PHP_INT_MAX,
|
||||
-PHP_INT_MAX,
|
||||
|
||||
// float values
|
||||
10.5,
|
||||
-20.5,
|
||||
10.1234567e10,
|
||||
|
||||
// array values
|
||||
array(),
|
||||
array(0),
|
||||
array(1, 2),
|
||||
|
||||
// boolean values
|
||||
true,
|
||||
false,
|
||||
TRUE,
|
||||
FALSE,
|
||||
|
||||
// null values
|
||||
NULL,
|
||||
null,
|
||||
|
||||
// objects
|
||||
new sample(),
|
||||
|
||||
// resource
|
||||
$file_handle,
|
||||
|
||||
// undefined variable
|
||||
@$undefined_var,
|
||||
|
||||
// unset variable
|
||||
@$unset_var
|
||||
);
|
||||
|
||||
// loop through with each element of the $inputs array to test function_exists() function
|
||||
$count = 1;
|
||||
foreach($inputs as $input) {
|
||||
echo "-- Iteration $count --\n";
|
||||
var_dump( function_exists($input) );
|
||||
$count ++;
|
||||
}
|
||||
|
||||
fclose($file_handle); //closing the file handle
|
||||
|
||||
?>
|
||||
===Done===
|
||||
--EXPECTF--
|
||||
*** Testing function_exists() function: with unexpected inputs for 'str' argument ***
|
||||
-- Iteration 1 --
|
||||
bool(false)
|
||||
-- Iteration 2 --
|
||||
bool(false)
|
||||
-- Iteration 3 --
|
||||
bool(false)
|
||||
-- Iteration 4 --
|
||||
bool(false)
|
||||
-- Iteration 5 --
|
||||
bool(false)
|
||||
-- Iteration 6 --
|
||||
bool(false)
|
||||
-- Iteration 7 --
|
||||
bool(false)
|
||||
-- Iteration 8 --
|
||||
bool(false)
|
||||
-- Iteration 9 --
|
||||
bool(false)
|
||||
-- Iteration 10 --
|
||||
|
||||
Notice: Array to string conversion in %s on line %d
|
||||
bool(false)
|
||||
-- Iteration 11 --
|
||||
|
||||
Notice: Array to string conversion in %s on line %d
|
||||
bool(false)
|
||||
-- Iteration 12 --
|
||||
|
||||
Notice: Array to string conversion in %s on line %d
|
||||
bool(false)
|
||||
-- Iteration 13 --
|
||||
bool(false)
|
||||
-- Iteration 14 --
|
||||
bool(false)
|
||||
-- Iteration 15 --
|
||||
bool(false)
|
||||
-- Iteration 16 --
|
||||
bool(false)
|
||||
-- Iteration 17 --
|
||||
bool(false)
|
||||
-- Iteration 18 --
|
||||
bool(false)
|
||||
-- Iteration 19 --
|
||||
bool(false)
|
||||
-- Iteration 20 --
|
||||
bool(false)
|
||||
-- Iteration 21 --
|
||||
bool(false)
|
||||
-- Iteration 22 --
|
||||
bool(false)
|
||||
===Done===
|
||||
@@ -33,7 +33,7 @@ new C;
|
||||
|
||||
?>
|
||||
--EXPECT--
|
||||
array(5) {
|
||||
array(6) {
|
||||
["aaa"]=>
|
||||
int(7)
|
||||
["ccc"]=>
|
||||
@@ -42,6 +42,8 @@ array(5) {
|
||||
int(1)
|
||||
["aa"]=>
|
||||
int(4)
|
||||
["bb"]=>
|
||||
int(5)
|
||||
["cc"]=>
|
||||
int(6)
|
||||
}
|
||||
@@ -44,5 +44,7 @@ array(1) {
|
||||
["a"]=>
|
||||
int(1)
|
||||
}
|
||||
array(0) {
|
||||
array(1) {
|
||||
["a"]=>
|
||||
int(1)
|
||||
}
|
||||
@@ -0,0 +1,59 @@
|
||||
--TEST--
|
||||
get_defined_functions() function : basic functionality
|
||||
--FILE--
|
||||
<?php
|
||||
|
||||
/* Prototype : array get_defined_functions ( void )
|
||||
* Description: Gets an array of all defined functions.
|
||||
* Source code: Zend/zend_builtin_functions.c
|
||||
*/
|
||||
|
||||
echo "*** Testing get_defined_functions() : basic functionality ***\n";
|
||||
|
||||
function foo() {}
|
||||
|
||||
// mixed case function
|
||||
function HelloWorld() {}
|
||||
|
||||
Class C {
|
||||
function f1() {}
|
||||
static function f2() {}
|
||||
}
|
||||
|
||||
$func = get_defined_functions();
|
||||
|
||||
if (!is_array($func)) {
|
||||
echo "TEST FAILED: return type not an array\n";
|
||||
}
|
||||
|
||||
|
||||
if (!is_array($func["internal"])) {
|
||||
echo "TEST FAILED: no element in result array with key 'internal'\n";
|
||||
}
|
||||
|
||||
$internal = $func["internal"];
|
||||
|
||||
//check for a few core functions
|
||||
if (!in_array("cos", $internal) || !in_array("strlen", $internal)) {
|
||||
echo "TEST FAILED: missing elements from 'internal' array\n";
|
||||
var_dump($internal);
|
||||
}
|
||||
|
||||
if (!is_array($func["user"])) {
|
||||
echo "TEST FAILED: no element in result array with key 'user'\n";
|
||||
}
|
||||
|
||||
$user = $func["user"];
|
||||
if (count($user) == 2 && in_array("foo", $user) && in_array("helloworld", $user)) {
|
||||
echo "TEST PASSED\n";
|
||||
} else {
|
||||
echo "TEST FAILED: missing elements from 'user' array\n";
|
||||
var_dump($user);
|
||||
}
|
||||
|
||||
?>
|
||||
===Done===
|
||||
--EXPECT--
|
||||
*** Testing get_defined_functions() : basic functionality ***
|
||||
TEST PASSED
|
||||
===Done===
|
||||
@@ -0,0 +1,29 @@
|
||||
--TEST--
|
||||
Test get_defined_functions() function : error conditions
|
||||
--FILE--
|
||||
<?php
|
||||
|
||||
/* Prototype : array get_defined_functions ( void )
|
||||
* Description: Gets an array of all defined functions.
|
||||
* Source code: Zend/zend_builtin_functions.c
|
||||
*/
|
||||
|
||||
|
||||
echo "*** Testing get_defined_functions() : error conditions ***\n";
|
||||
|
||||
|
||||
echo "\n-- Testing get_defined_functions() function with more than expected no. of arguments --\n";
|
||||
$extra_arg = 10;
|
||||
var_dump( get_defined_functions($extra_arg) );
|
||||
|
||||
?>
|
||||
===Done===
|
||||
--EXPECTF--
|
||||
*** Testing get_defined_functions() : error conditions ***
|
||||
|
||||
-- Testing get_defined_functions() function with more than expected no. of arguments --
|
||||
|
||||
Warning: Wrong parameter count for get_defined_functions() in %s on line %d
|
||||
NULL
|
||||
|
||||
===Done===
|
||||
+4
-4
@@ -2,7 +2,7 @@
|
||||
+----------------------------------------------------------------------+
|
||||
| Zend Engine |
|
||||
+----------------------------------------------------------------------+
|
||||
| Copyright (c) 1998-2008 Zend Technologies Ltd. (http://www.zend.com) |
|
||||
| Copyright (c) 1998-2009 Zend Technologies Ltd. (http://www.zend.com) |
|
||||
+----------------------------------------------------------------------+
|
||||
| This source file is subject to version 2.00 of the Zend license, |
|
||||
| that is bundled with this package in the file LICENSE, and is |
|
||||
@@ -101,7 +101,7 @@ ZEND_API zval zval_used_for_init; /* True global variable */
|
||||
/* version information */
|
||||
static char *zend_version_info;
|
||||
static uint zend_version_info_length;
|
||||
#define ZEND_CORE_VERSION_INFO "Zend Engine v" ZEND_VERSION ", Copyright (c) 1998-2008 Zend Technologies\n"
|
||||
#define ZEND_CORE_VERSION_INFO "Zend Engine v" ZEND_VERSION ", Copyright (c) 1998-2009 Zend Technologies\n"
|
||||
|
||||
|
||||
#define PRINT_ZVAL_INDENT 4
|
||||
@@ -835,7 +835,7 @@ void zend_deactivate_modules(TSRMLS_D)
|
||||
EG(opline_ptr) = NULL; /* we're no longer executing anything */
|
||||
|
||||
zend_try {
|
||||
zend_hash_apply(&module_registry, (apply_func_t) module_registry_cleanup TSRMLS_CC);
|
||||
zend_hash_reverse_apply(&module_registry, (apply_func_t) module_registry_cleanup TSRMLS_CC);
|
||||
} zend_end_try();
|
||||
}
|
||||
|
||||
@@ -1078,7 +1078,7 @@ ZEND_API void zend_error(int type, const char *format, ...)
|
||||
}
|
||||
}
|
||||
|
||||
#if defined(__GNUC__) && !defined(__INTEL_COMPILER) && !defined(DARWIN) && !defined(__hpux) && !defined(_AIX) && !defined(__osf__)
|
||||
#if defined(__GNUC__) && __GNUC__ >= 3 && !defined(__INTEL_COMPILER) && !defined(DARWIN) && !defined(__hpux) && !defined(_AIX) && !defined(__osf__)
|
||||
void zend_error_noreturn(int type, const char *format, ...) __attribute__ ((alias("zend_error"),noreturn));
|
||||
#endif
|
||||
|
||||
|
||||
+20
-2
@@ -2,7 +2,7 @@
|
||||
+----------------------------------------------------------------------+
|
||||
| Zend Engine |
|
||||
+----------------------------------------------------------------------+
|
||||
| Copyright (c) 1998-2008 Zend Technologies Ltd. (http://www.zend.com) |
|
||||
| Copyright (c) 1998-2009 Zend Technologies Ltd. (http://www.zend.com) |
|
||||
+----------------------------------------------------------------------+
|
||||
| This source file is subject to version 2.00 of the Zend license, |
|
||||
| that is bundled with this package in the file LICENSE, and is |
|
||||
@@ -178,6 +178,12 @@ char *alloca ();
|
||||
#endif
|
||||
|
||||
|
||||
#if defined(__GNUC__) && ZEND_GCC_VERSION >= 3400
|
||||
#else
|
||||
# define __restrict__
|
||||
#endif
|
||||
#define restrict __restrict__
|
||||
|
||||
#if (HAVE_ALLOCA || (defined (__GNUC__) && __GNUC__ >= 2)) && !(defined(ZTS) && defined(ZEND_WIN32)) && !(defined(ZTS) && defined(NETWARE)) && !(defined(ZTS) && defined(HPUX)) && !defined(DARWIN)
|
||||
# define do_alloca(p) alloca(p)
|
||||
# define free_alloca(p)
|
||||
@@ -249,6 +255,18 @@ char *alloca ();
|
||||
#define LONG_MIN (- LONG_MAX - 1)
|
||||
#endif
|
||||
|
||||
#if SIZEOF_LONG == 4
|
||||
#define MAX_LENGTH_OF_LONG 11
|
||||
static const char long_min_digits[] = "2147483648";
|
||||
#elif SIZEOF_LONG == 8
|
||||
#define MAX_LENGTH_OF_LONG 20
|
||||
static const char long_min_digits[] = "9223372036854775808";
|
||||
#else
|
||||
#error "Unknown SIZEOF_LONG"
|
||||
#endif
|
||||
|
||||
#define MAX_LENGTH_OF_DOUBLE 32
|
||||
|
||||
#undef SUCCESS
|
||||
#undef FAILURE
|
||||
#define SUCCESS 0
|
||||
@@ -262,7 +280,7 @@ char *alloca ();
|
||||
#define INTERNAL_FUNCTION_PARAMETERS int ht, zval *return_value, zval **return_value_ptr, zval *this_ptr, int return_value_used TSRMLS_DC
|
||||
#define INTERNAL_FUNCTION_PARAM_PASSTHRU ht, return_value, return_value_ptr, this_ptr, return_value_used TSRMLS_CC
|
||||
|
||||
#if defined(__GNUC__) && !defined(__INTEL_COMPILER) && !defined(DARWIN) && !defined(__hpux) && !defined(_AIX) && !defined(__osf__)
|
||||
#if defined(__GNUC__) && __GNUC__ >= 3 && !defined(__INTEL_COMPILER) && !defined(DARWIN) && !defined(__hpux) && !defined(_AIX) && !defined(__osf__) && __GNUC__ >= 3
|
||||
# define ZEND_VM_ALWAYS_INLINE __attribute__ ((always_inline))
|
||||
void zend_error_noreturn(int type, const char *format, ...) __attribute__ ((noreturn));
|
||||
#else
|
||||
|
||||
+5
-2
@@ -2,7 +2,7 @@
|
||||
+----------------------------------------------------------------------+
|
||||
| Zend Engine |
|
||||
+----------------------------------------------------------------------+
|
||||
| Copyright (c) 1998-2008 Zend Technologies Ltd. (http://www.zend.com) |
|
||||
| Copyright (c) 1998-2009 Zend Technologies Ltd. (http://www.zend.com) |
|
||||
+----------------------------------------------------------------------+
|
||||
| This source file is subject to version 2.00 of the Zend license, |
|
||||
| that is bundled with this package in the file LICENSE, and is |
|
||||
@@ -1782,7 +1782,6 @@ ZEND_API int zend_register_functions(zend_class_entry *scope, zend_function_entr
|
||||
fname_len = strlen(ptr->fname);
|
||||
lowercase_name = zend_str_tolower_dup(ptr->fname, fname_len);
|
||||
if (zend_hash_exists(target_function_table, lowercase_name, fname_len+1)) {
|
||||
efree(lowercase_name);
|
||||
zend_error(error_type, "Function registration failed - duplicate name - %s%s%s", scope ? scope->name : "", scope ? "::" : "", ptr->fname);
|
||||
}
|
||||
efree(lowercase_name);
|
||||
@@ -2216,6 +2215,10 @@ static int zend_is_callable_check_func(int check_flags, zval ***zobj_ptr_ptr, ze
|
||||
retval = 0;
|
||||
}
|
||||
}
|
||||
if (!retval && *zobj_ptr_ptr && *ce_ptr && (*ce_ptr)->__call != 0) {
|
||||
retval = (*ce_ptr)->__call != NULL;
|
||||
*fptr_ptr = (*ce_ptr)->__call;
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
+1
-1
@@ -2,7 +2,7 @@
|
||||
+----------------------------------------------------------------------+
|
||||
| Zend Engine |
|
||||
+----------------------------------------------------------------------+
|
||||
| Copyright (c) 1998-2008 Zend Technologies Ltd. (http://www.zend.com) |
|
||||
| Copyright (c) 1998-2009 Zend Technologies Ltd. (http://www.zend.com) |
|
||||
+----------------------------------------------------------------------+
|
||||
| This source file is subject to version 2.00 of the Zend license, |
|
||||
| that is bundled with this package in the file LICENSE, and is |
|
||||
|
||||
+17
-8
@@ -2,7 +2,7 @@
|
||||
+----------------------------------------------------------------------+
|
||||
| Zend Engine |
|
||||
+----------------------------------------------------------------------+
|
||||
| Copyright (c) 1998-2008 Zend Technologies Ltd. (http://www.zend.com) |
|
||||
| Copyright (c) 1998-2009 Zend Technologies Ltd. (http://www.zend.com) |
|
||||
+----------------------------------------------------------------------+
|
||||
| This source file is subject to version 2.00 of the Zend license, |
|
||||
| that is bundled with this package in the file LICENSE, and is |
|
||||
@@ -148,7 +148,12 @@ static zend_mm_segment* zend_mm_mem_mmap_realloc(zend_mm_storage *storage, zend_
|
||||
{
|
||||
zend_mm_segment *ret;
|
||||
#ifdef HAVE_MREMAP
|
||||
#if defined(__NetBSD__)
|
||||
/* NetBSD 5 supports mremap but takes an extra newp argument */
|
||||
ret = (zend_mm_segment*)mremap(segment, segment->size, segment, size, MREMAP_MAYMOVE);
|
||||
#else
|
||||
ret = (zend_mm_segment*)mremap(segment, segment->size, size, MREMAP_MAYMOVE);
|
||||
#endif
|
||||
if (ret == MAP_FAILED) {
|
||||
#endif
|
||||
ret = storage->handlers->_alloc(storage, size);
|
||||
@@ -164,7 +169,7 @@ static zend_mm_segment* zend_mm_mem_mmap_realloc(zend_mm_storage *storage, zend_
|
||||
|
||||
static void zend_mm_mem_mmap_free(zend_mm_storage *storage, zend_mm_segment* segment)
|
||||
{
|
||||
munmap(segment, segment->size);
|
||||
munmap((void*)segment, segment->size);
|
||||
}
|
||||
|
||||
#endif
|
||||
@@ -399,9 +404,9 @@ struct _zend_mm_heap {
|
||||
size_t compact_size;
|
||||
zend_mm_segment *segments_list;
|
||||
zend_mm_storage *storage;
|
||||
size_t real_size;
|
||||
size_t real_size;
|
||||
size_t real_peak;
|
||||
size_t limit;
|
||||
size_t limit;
|
||||
size_t size;
|
||||
size_t peak;
|
||||
size_t reserve_size;
|
||||
@@ -432,8 +437,8 @@ struct _zend_mm_heap {
|
||||
|
||||
#define ZEND_MM_REST_BUCKET(heap) \
|
||||
(zend_mm_free_block*)((char*)&heap->rest_buckets[0] + \
|
||||
sizeof(zend_mm_free_block*) * 2 - \
|
||||
sizeof(zend_mm_small_free_block))
|
||||
sizeof(zend_mm_free_block*) * 2 - \
|
||||
sizeof(zend_mm_small_free_block))
|
||||
|
||||
#if ZEND_MM_COOKIES
|
||||
|
||||
@@ -1804,7 +1809,7 @@ static void *_zend_mm_alloc_int(zend_mm_heap *heap, size_t size ZEND_FILE_LINE_D
|
||||
heap->cache_stat[ZEND_MM_NUM_BUCKETS].miss++;
|
||||
#endif
|
||||
|
||||
best_fit = zend_mm_search_large_block(heap, true_size);
|
||||
best_fit = zend_mm_search_large_block(heap, true_size);
|
||||
|
||||
if (!best_fit && heap->real_size >= heap->limit - heap->block_size) {
|
||||
zend_mm_free_block *p = heap->rest_buckets[0];
|
||||
@@ -2472,7 +2477,11 @@ ZEND_API size_t zend_memory_usage(int real_usage TSRMLS_DC)
|
||||
if (real_usage) {
|
||||
return AG(mm_heap)->real_size;
|
||||
} else {
|
||||
return AG(mm_heap)->size;
|
||||
size_t usage = AG(mm_heap)->size;
|
||||
#if ZEND_MM_CACHE
|
||||
usage -= AG(mm_heap)->cached;
|
||||
#endif
|
||||
return usage;
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
+16
-16
@@ -2,7 +2,7 @@
|
||||
+----------------------------------------------------------------------+
|
||||
| Zend Engine |
|
||||
+----------------------------------------------------------------------+
|
||||
| Copyright (c) 1998-2008 Zend Technologies Ltd. (http://www.zend.com) |
|
||||
| Copyright (c) 1998-2009 Zend Technologies Ltd. (http://www.zend.com) |
|
||||
+----------------------------------------------------------------------+
|
||||
| This source file is subject to version 2.00 of the Zend license, |
|
||||
| that is bundled with this package in the file LICENSE, and is |
|
||||
@@ -78,29 +78,29 @@ ZEND_API size_t _zend_mem_block_size(void *ptr TSRMLS_DC ZEND_FILE_LINE_DC ZEND_
|
||||
|
||||
inline static void * __zend_malloc(size_t len)
|
||||
{
|
||||
void *tmp = malloc(len);
|
||||
if (tmp) {
|
||||
return tmp;
|
||||
}
|
||||
fprintf(stderr, "Out of memory\n");
|
||||
exit(1);
|
||||
void *tmp = malloc(len);
|
||||
if (tmp) {
|
||||
return tmp;
|
||||
}
|
||||
fprintf(stderr, "Out of memory\n");
|
||||
exit(1);
|
||||
}
|
||||
|
||||
inline static void * __zend_calloc(size_t nmemb, size_t len)
|
||||
{
|
||||
void *tmp = _safe_malloc(nmemb, len, 0);
|
||||
memset(tmp, 0, len);
|
||||
return tmp;
|
||||
void *tmp = _safe_malloc(nmemb, len, 0);
|
||||
memset(tmp, 0, len);
|
||||
return tmp;
|
||||
}
|
||||
|
||||
inline static void * __zend_realloc(void *p, size_t len)
|
||||
{
|
||||
p = realloc(p, len);
|
||||
if (p) {
|
||||
return p;
|
||||
}
|
||||
fprintf(stderr, "Out of memory\n");
|
||||
exit(1);
|
||||
p = realloc(p, len);
|
||||
if (p) {
|
||||
return p;
|
||||
}
|
||||
fprintf(stderr, "Out of memory\n");
|
||||
exit(1);
|
||||
}
|
||||
|
||||
|
||||
|
||||
@@ -2,7 +2,7 @@
|
||||
+----------------------------------------------------------------------+
|
||||
| Zend Engine |
|
||||
+----------------------------------------------------------------------+
|
||||
| Copyright (c) 1998-2008 Zend Technologies Ltd. (http://www.zend.com) |
|
||||
| Copyright (c) 1998-2009 Zend Technologies Ltd. (http://www.zend.com) |
|
||||
+----------------------------------------------------------------------+
|
||||
| This source file is subject to version 2.00 of the Zend license, |
|
||||
| that is bundled with this package in the file LICENSE, and is |
|
||||
|
||||
@@ -2,7 +2,7 @@
|
||||
+----------------------------------------------------------------------+
|
||||
| Zend Engine |
|
||||
+----------------------------------------------------------------------+
|
||||
| Copyright (c) 1998-2008 Zend Technologies Ltd. (http://www.zend.com) |
|
||||
| Copyright (c) 1998-2009 Zend Technologies Ltd. (http://www.zend.com) |
|
||||
+----------------------------------------------------------------------+
|
||||
| This source file is subject to version 2.00 of the Zend license, |
|
||||
| that is bundled with this package in the file LICENSE, and is |
|
||||
@@ -461,6 +461,7 @@ ZEND_FUNCTION(define)
|
||||
zend_bool non_cs = 0;
|
||||
int case_sensitive = CONST_CS;
|
||||
zend_constant c;
|
||||
char *p;
|
||||
|
||||
if (zend_parse_parameters(ZEND_NUM_ARGS() TSRMLS_CC, "sz|b", &name, &name_len, &val, &non_cs) == FAILURE) {
|
||||
return;
|
||||
@@ -470,6 +471,34 @@ ZEND_FUNCTION(define)
|
||||
case_sensitive = 0;
|
||||
}
|
||||
|
||||
/* class constant, check if there is name and make sure class is valid & exists */
|
||||
if ((p = zend_memnstr(name, "::", sizeof("::") - 1, name + name_len))) {
|
||||
char *class_name;
|
||||
int found;
|
||||
zend_class_entry **ce;
|
||||
ALLOCA_FLAG(use_heap)
|
||||
|
||||
if (p == (name + name_len - sizeof("::") + 1)) {
|
||||
zend_error(E_WARNING, "Class constant must have a name");
|
||||
RETURN_FALSE;
|
||||
} else if (p == name) {
|
||||
zend_error(E_WARNING, "Missing class name");
|
||||
RETURN_FALSE;
|
||||
}
|
||||
|
||||
class_name = do_alloca_with_limit((p - name + 1), use_heap);
|
||||
zend_str_tolower_copy(class_name, name, (p - name));
|
||||
|
||||
found = zend_hash_find(EG(class_table), class_name, p - name + 1, (void **) &ce);
|
||||
|
||||
if (found != SUCCESS) {
|
||||
zend_error(E_WARNING, "Class '%s' does not exist", class_name);
|
||||
free_alloca_with_limit(class_name, use_heap);
|
||||
RETURN_FALSE;
|
||||
}
|
||||
free_alloca_with_limit(class_name, use_heap);
|
||||
}
|
||||
|
||||
repeat:
|
||||
switch (Z_TYPE_P(val)) {
|
||||
case IS_LONG:
|
||||
@@ -706,27 +735,22 @@ static void add_class_vars(zend_class_entry *ce, HashTable *properties, zval *re
|
||||
while (zend_hash_get_current_data_ex(properties, (void **) &prop, &pos) == SUCCESS) {
|
||||
char *key, *class_name, *prop_name;
|
||||
uint key_len;
|
||||
ulong num_index, h;
|
||||
ulong num_index;
|
||||
int prop_name_len = 0;
|
||||
zval *prop_copy;
|
||||
zend_property_info *property_info;
|
||||
zval zprop_name;
|
||||
|
||||
zend_hash_get_current_key_ex(properties, &key, &key_len, &num_index, 0, &pos);
|
||||
zend_hash_move_forward_ex(properties, &pos);
|
||||
|
||||
zend_unmangle_property_name(key, key_len-1, &class_name, &prop_name);
|
||||
prop_name_len = strlen(prop_name);
|
||||
|
||||
h = zend_get_hash_value(prop_name, prop_name_len+1);
|
||||
if (zend_hash_quick_find(&ce->properties_info, prop_name, prop_name_len+1, h, (void **) &property_info) == FAILURE) {
|
||||
continue;
|
||||
}
|
||||
|
||||
if (property_info->flags & ZEND_ACC_SHADOW) {
|
||||
continue;
|
||||
} else if ((property_info->flags & ZEND_ACC_PRIVATE) && EG(scope) != ce) {
|
||||
continue;
|
||||
} else if ((property_info->flags & ZEND_ACC_PROTECTED) && zend_check_protected(ce, EG(scope)) == 0) {
|
||||
|
||||
ZVAL_STRINGL(&zprop_name, prop_name, prop_name_len, 0);
|
||||
property_info = zend_get_property_info(ce, &zprop_name, 1 TSRMLS_CC);
|
||||
|
||||
if (!property_info || property_info == &EG(std_property_info)) {
|
||||
continue;
|
||||
}
|
||||
|
||||
@@ -1617,7 +1641,8 @@ ZEND_FUNCTION(get_defined_constants)
|
||||
module_names[0] = "internal";
|
||||
zend_hash_internal_pointer_reset_ex(&module_registry, &pos);
|
||||
while (zend_hash_get_current_data_ex(&module_registry, (void *) &module, &pos) != FAILURE) {
|
||||
module_names[i++] = module->name;
|
||||
module_names[module->module_number] = module->name;
|
||||
i++;
|
||||
zend_hash_move_forward_ex(&module_registry, &pos);
|
||||
}
|
||||
module_names[i] = "user";
|
||||
|
||||
@@ -2,7 +2,7 @@
|
||||
+----------------------------------------------------------------------+
|
||||
| Zend Engine |
|
||||
+----------------------------------------------------------------------+
|
||||
| Copyright (c) 1998-2008 Zend Technologies Ltd. (http://www.zend.com) |
|
||||
| Copyright (c) 1998-2009 Zend Technologies Ltd. (http://www.zend.com) |
|
||||
+----------------------------------------------------------------------+
|
||||
| This source file is subject to version 2.00 of the Zend license, |
|
||||
| that is bundled with this package in the file LICENSE, and is |
|
||||
|
||||
+15
-11
@@ -2,7 +2,7 @@
|
||||
+----------------------------------------------------------------------+
|
||||
| Zend Engine |
|
||||
+----------------------------------------------------------------------+
|
||||
| Copyright (c) 1998-2008 Zend Technologies Ltd. (http://www.zend.com) |
|
||||
| Copyright (c) 1998-2009 Zend Technologies Ltd. (http://www.zend.com) |
|
||||
+----------------------------------------------------------------------+
|
||||
| This source file is subject to version 2.00 of the Zend license, |
|
||||
| that is bundled with this package in the file LICENSE, and is |
|
||||
@@ -1536,11 +1536,8 @@ void zend_do_begin_class_member_function_call(znode *class_name, znode *method_n
|
||||
memcmp(lcname, ZEND_CONSTRUCTOR_FUNC_NAME, sizeof(ZEND_CONSTRUCTOR_FUNC_NAME)-1) == 0) {
|
||||
zval_dtor(&opline->op2.u.constant);
|
||||
SET_UNUSED(opline->op2);
|
||||
efree(lcname);
|
||||
} else {
|
||||
efree(opline->op2.u.constant.value.str.val);
|
||||
opline->op2.u.constant.value.str.val = lcname;
|
||||
}
|
||||
efree(lcname);
|
||||
}
|
||||
|
||||
zend_stack_push(&CG(function_call_stack), (void *) &ptr, sizeof(zend_function *));
|
||||
@@ -1607,8 +1604,17 @@ void zend_do_pass_param(znode *param, zend_uchar op, int offset TSRMLS_DC)
|
||||
|
||||
if (function_ptr) {
|
||||
if (ARG_MAY_BE_SENT_BY_REF(function_ptr, (zend_uint) offset)) {
|
||||
op = (param->op_type & (IS_VAR|IS_CV))?ZEND_SEND_REF:ZEND_SEND_VAL;
|
||||
send_by_reference = 0;
|
||||
if (param->op_type & (IS_VAR|IS_CV)) {
|
||||
send_by_reference = 1;
|
||||
if (op == ZEND_SEND_VAR && zend_is_function_or_method_call(param)) {
|
||||
/* Method call */
|
||||
op = ZEND_SEND_VAR_NO_REF;
|
||||
send_function = ZEND_ARG_SEND_FUNCTION | ZEND_ARG_SEND_SILENT;
|
||||
}
|
||||
} else {
|
||||
op = ZEND_SEND_VAL;
|
||||
send_by_reference = 0;
|
||||
}
|
||||
} else {
|
||||
send_by_reference = ARG_SHOULD_BE_SENT_BY_REF(function_ptr, (zend_uint) offset) ? ZEND_ARG_SEND_BY_REF : 0;
|
||||
}
|
||||
@@ -2129,7 +2135,7 @@ static zend_bool do_inherit_method_check(HashTable *child_function_table, zend_f
|
||||
if (!zend_do_perform_implementation_check(child, child->common.prototype)) {
|
||||
zend_error(E_COMPILE_ERROR, "Declaration of %s::%s() must be compatible with that of %s::%s()", ZEND_FN_SCOPE_NAME(child), child->common.function_name, ZEND_FN_SCOPE_NAME(child->common.prototype), child->common.prototype->common.function_name);
|
||||
}
|
||||
} else if (EG(error_reporting) & E_STRICT) { /* Check E_STRICT before the check so that we save some time */
|
||||
} else if (EG(error_reporting) & E_STRICT || EG(user_error_handler)) { /* Check E_STRICT (or custom error handler) before the check so that we save some time */
|
||||
if (!zend_do_perform_implementation_check(child, parent)) {
|
||||
zend_error(E_STRICT, "Declaration of %s::%s() should be compatible with that of %s::%s()", ZEND_FN_SCOPE_NAME(child), child->common.function_name, ZEND_FN_SCOPE_NAME(parent), parent->common.function_name);
|
||||
}
|
||||
@@ -2530,7 +2536,7 @@ void zend_do_early_binding(TSRMLS_D)
|
||||
/* clear unnecessary ZEND_FETCH_CLASS opcode */
|
||||
if (opline > CG(active_op_array)->opcodes &&
|
||||
(opline-1)->opcode == ZEND_FETCH_CLASS) {
|
||||
zend_op *fetch_class_opline = opline-1;
|
||||
zend_op *fetch_class_opline = opline-1;
|
||||
|
||||
zval_dtor(&fetch_class_opline->op2.u.constant);
|
||||
fetch_class_opline->opcode = ZEND_NOP;
|
||||
@@ -4186,8 +4192,6 @@ again:
|
||||
case T_END_HEREDOC:
|
||||
efree(Z_STRVAL(zendlval->u.constant));
|
||||
break;
|
||||
case EOF:
|
||||
return EOF;
|
||||
}
|
||||
|
||||
INIT_PZVAL(&zendlval->u.constant);
|
||||
|
||||
+2
-1
@@ -2,7 +2,7 @@
|
||||
+----------------------------------------------------------------------+
|
||||
| Zend Engine |
|
||||
+----------------------------------------------------------------------+
|
||||
| Copyright (c) 1998-2008 Zend Technologies Ltd. (http://www.zend.com) |
|
||||
| Copyright (c) 1998-2009 Zend Technologies Ltd. (http://www.zend.com) |
|
||||
+----------------------------------------------------------------------+
|
||||
| This source file is subject to version 2.00 of the Zend license, |
|
||||
| that is bundled with this package in the file LICENSE, and is |
|
||||
@@ -659,6 +659,7 @@ int zendlex(znode *zendlval TSRMLS_DC);
|
||||
#define ZEND_ARG_SEND_BY_REF (1<<0)
|
||||
#define ZEND_ARG_COMPILE_TIME_BOUND (1<<1)
|
||||
#define ZEND_ARG_SEND_FUNCTION (1<<2)
|
||||
#define ZEND_ARG_SEND_SILENT (1<<3)
|
||||
|
||||
#define ZEND_SEND_BY_VAL 0
|
||||
#define ZEND_SEND_BY_REF 1
|
||||
|
||||
@@ -2,7 +2,7 @@
|
||||
+----------------------------------------------------------------------+
|
||||
| Zend Engine |
|
||||
+----------------------------------------------------------------------+
|
||||
| Copyright (c) 1998-2008 Zend Technologies Ltd. (http://www.zend.com) |
|
||||
| Copyright (c) 1998-2009 Zend Technologies Ltd. (http://www.zend.com) |
|
||||
+----------------------------------------------------------------------+
|
||||
| This source file is subject to version 2.00 of the Zend license, |
|
||||
| that is bundled with this package in the file LICENSE, and is |
|
||||
|
||||
@@ -2,7 +2,7 @@
|
||||
+----------------------------------------------------------------------+
|
||||
| Zend Engine |
|
||||
+----------------------------------------------------------------------+
|
||||
| Copyright (c) 1998-2008 Zend Technologies Ltd. (http://www.zend.com) |
|
||||
| Copyright (c) 1998-2009 Zend Technologies Ltd. (http://www.zend.com) |
|
||||
+----------------------------------------------------------------------+
|
||||
| This source file is subject to version 2.00 of the Zend license, |
|
||||
| that is bundled with this package in the file LICENSE, and is |
|
||||
|
||||
@@ -2,7 +2,7 @@
|
||||
+----------------------------------------------------------------------+
|
||||
| Zend Engine |
|
||||
+----------------------------------------------------------------------+
|
||||
| Copyright (c) 1998-2008 Zend Technologies Ltd. (http://www.zend.com) |
|
||||
| Copyright (c) 1998-2009 Zend Technologies Ltd. (http://www.zend.com) |
|
||||
+----------------------------------------------------------------------+
|
||||
| This source file is subject to version 2.00 of the Zend license, |
|
||||
| that is bundled with this package in the file LICENSE, and is |
|
||||
|
||||
@@ -2,7 +2,7 @@
|
||||
+----------------------------------------------------------------------+
|
||||
| Zend Engine |
|
||||
+----------------------------------------------------------------------+
|
||||
| Copyright (c) 1998-2008 Zend Technologies Ltd. (http://www.zend.com) |
|
||||
| Copyright (c) 1998-2009 Zend Technologies Ltd. (http://www.zend.com) |
|
||||
+----------------------------------------------------------------------+
|
||||
| This source file is subject to version 2.00 of the Zend license, |
|
||||
| that is bundled with this package in the file LICENSE, and is |
|
||||
|
||||
@@ -2,7 +2,7 @@
|
||||
+----------------------------------------------------------------------+
|
||||
| Zend Engine |
|
||||
+----------------------------------------------------------------------+
|
||||
| Copyright (c) 1998-2008 Zend Technologies Ltd. (http://www.zend.com) |
|
||||
| Copyright (c) 1998-2009 Zend Technologies Ltd. (http://www.zend.com) |
|
||||
+----------------------------------------------------------------------+
|
||||
| This source file is subject to version 2.00 of the Zend license, |
|
||||
| that is bundled with this package in the file LICENSE, and is |
|
||||
|
||||
@@ -2,7 +2,7 @@
|
||||
+----------------------------------------------------------------------+
|
||||
| Zend Engine |
|
||||
+----------------------------------------------------------------------+
|
||||
| Copyright (c) 1998-2008 Zend Technologies Ltd. (http://www.zend.com) |
|
||||
| Copyright (c) 1998-2009 Zend Technologies Ltd. (http://www.zend.com) |
|
||||
+----------------------------------------------------------------------+
|
||||
| This source file is subject to version 2.00 of the Zend license, |
|
||||
| that is bundled with this package in the file LICENSE, and is |
|
||||
|
||||
@@ -2,7 +2,7 @@
|
||||
+----------------------------------------------------------------------+
|
||||
| Zend Engine |
|
||||
+----------------------------------------------------------------------+
|
||||
| Copyright (c) 1998-2008 Zend Technologies Ltd. (http://www.zend.com) |
|
||||
| Copyright (c) 1998-2009 Zend Technologies Ltd. (http://www.zend.com) |
|
||||
+----------------------------------------------------------------------+
|
||||
| This source file is subject to version 2.00 of the Zend license, |
|
||||
| that is bundled with this package in the file LICENSE, and is |
|
||||
|
||||
+1
-1
@@ -2,7 +2,7 @@
|
||||
+----------------------------------------------------------------------+
|
||||
| Zend Engine |
|
||||
+----------------------------------------------------------------------+
|
||||
| Copyright (c) 1998-2008 Zend Technologies Ltd. (http://www.zend.com) |
|
||||
| Copyright (c) 1998-2009 Zend Technologies Ltd. (http://www.zend.com) |
|
||||
+----------------------------------------------------------------------+
|
||||
| This source file is subject to version 2.00 of the Zend license, |
|
||||
| that is bundled with this package in the file LICENSE, and is |
|
||||
|
||||
@@ -2,7 +2,7 @@
|
||||
+----------------------------------------------------------------------+
|
||||
| Zend Engine |
|
||||
+----------------------------------------------------------------------+
|
||||
| Copyright (c) 1998-2008 Zend Technologies Ltd. (http://www.zend.com) |
|
||||
| Copyright (c) 1998-2009 Zend Technologies Ltd. (http://www.zend.com) |
|
||||
+----------------------------------------------------------------------+
|
||||
| This source file is subject to version 2.00 of the Zend license, |
|
||||
| that is bundled with this package in the file LICENSE, and is |
|
||||
@@ -428,9 +428,14 @@ static int _build_trace_string(zval **frame, int num_args, va_list args, zend_ha
|
||||
ZEND_METHOD(exception, getTraceAsString)
|
||||
{
|
||||
zval *trace;
|
||||
char *res = estrdup(""), **str = &res, *s_tmp;
|
||||
char *res, **str, *s_tmp;
|
||||
int res_len = 0, *len = &res_len, num = 0;
|
||||
|
||||
DEFAULT_0_PARAMS;
|
||||
|
||||
res = estrdup("");
|
||||
str = &res;
|
||||
|
||||
trace = zend_read_property(default_exception_ce, getThis(), "trace", sizeof("trace")-1, 1 TSRMLS_CC);
|
||||
zend_hash_apply_with_arguments(Z_ARRVAL_P(trace), (apply_func_args_t)_build_trace_string, 3, str, len, &num);
|
||||
|
||||
@@ -465,6 +470,8 @@ ZEND_METHOD(exception, __toString)
|
||||
int len;
|
||||
zend_fcall_info fci;
|
||||
zval fname;
|
||||
|
||||
DEFAULT_0_PARAMS;
|
||||
|
||||
_default_exception_get_entry(getThis(), "message", sizeof("message")-1, &message TSRMLS_CC);
|
||||
_default_exception_get_entry(getThis(), "file", sizeof("file")-1, &file TSRMLS_CC);
|
||||
|
||||
@@ -2,7 +2,7 @@
|
||||
+----------------------------------------------------------------------+
|
||||
| Zend Engine |
|
||||
+----------------------------------------------------------------------+
|
||||
| Copyright (c) 1998-2008 Zend Technologies Ltd. (http://www.zend.com) |
|
||||
| Copyright (c) 1998-2009 Zend Technologies Ltd. (http://www.zend.com) |
|
||||
+----------------------------------------------------------------------+
|
||||
| This source file is subject to version 2.00 of the Zend license, |
|
||||
| that is bundled with this package in the file LICENSE, and is |
|
||||
|
||||
+4
-2
@@ -2,7 +2,7 @@
|
||||
+----------------------------------------------------------------------+
|
||||
| Zend Engine |
|
||||
+----------------------------------------------------------------------+
|
||||
| Copyright (c) 1998-2008 Zend Technologies Ltd. (http://www.zend.com) |
|
||||
| Copyright (c) 1998-2009 Zend Technologies Ltd. (http://www.zend.com) |
|
||||
+----------------------------------------------------------------------+
|
||||
| This source file is subject to version 2.00 of the Zend license, |
|
||||
| that is bundled with this package in the file LICENSE, and is |
|
||||
@@ -183,7 +183,6 @@ static inline zval *_get_zval_ptr_var(znode *node, temp_variable *Ts, zend_free_
|
||||
if (T->str_offset.str->type != IS_STRING
|
||||
|| ((int)T->str_offset.offset < 0)
|
||||
|| (T->str_offset.str->value.str.len <= (int)T->str_offset.offset)) {
|
||||
zend_error(E_NOTICE, "Uninitialized string offset: %d", T->str_offset.offset);
|
||||
ptr->value.str.val = STR_EMPTY_ALLOC();
|
||||
ptr->value.str.len = 0;
|
||||
} else {
|
||||
@@ -1133,6 +1132,9 @@ static void zend_fetch_dimension_address(temp_variable *result, zval **container
|
||||
break;
|
||||
}
|
||||
if (result) {
|
||||
if (Z_LVAL_P(dim) < 0 || Z_STRLEN_P(container) <= Z_LVAL_P(dim)) {
|
||||
zend_error(E_NOTICE, "Uninitialized string offset: %ld", Z_LVAL_P(dim));
|
||||
}
|
||||
container = *container_ptr;
|
||||
result->str_offset.str = container;
|
||||
PZVAL_LOCK(container);
|
||||
|
||||
+22
-1
@@ -2,7 +2,7 @@
|
||||
+----------------------------------------------------------------------+
|
||||
| Zend Engine |
|
||||
+----------------------------------------------------------------------+
|
||||
| Copyright (c) 1998-2008 Zend Technologies Ltd. (http://www.zend.com) |
|
||||
| Copyright (c) 1998-2009 Zend Technologies Ltd. (http://www.zend.com) |
|
||||
+----------------------------------------------------------------------+
|
||||
| This source file is subject to version 2.00 of the Zend license, |
|
||||
| that is bundled with this package in the file LICENSE, and is |
|
||||
@@ -169,6 +169,27 @@ static inline int zend_ptr_stack_get_arg(int requested_arg, void **data TSRMLS_D
|
||||
return SUCCESS;
|
||||
}
|
||||
|
||||
static inline void zend_arg_types_stack_2_pop(zend_ptr_stack *stack, zval **object, zend_function **fbc)
|
||||
{
|
||||
void *a, *b;
|
||||
|
||||
zend_ptr_stack_2_pop(stack, &a, &b);
|
||||
|
||||
*object = (zval *) a;
|
||||
*fbc = (zend_function *) b;
|
||||
}
|
||||
|
||||
static inline void zend_arg_types_stack_3_pop(zend_ptr_stack *stack, zend_class_entry **called_scope, zval **object, zend_function **fbc)
|
||||
{
|
||||
void *a, *b, *c;
|
||||
|
||||
zend_ptr_stack_3_pop(stack, &a, &b, &c);
|
||||
|
||||
*called_scope = (zend_class_entry *) a;
|
||||
*object = (zval *) b;
|
||||
*fbc = (zend_function *) c;
|
||||
}
|
||||
|
||||
void execute_new_code(TSRMLS_D);
|
||||
|
||||
|
||||
|
||||
+22
-5
@@ -2,7 +2,7 @@
|
||||
+----------------------------------------------------------------------+
|
||||
| Zend Engine |
|
||||
+----------------------------------------------------------------------+
|
||||
| Copyright (c) 1998-2008 Zend Technologies Ltd. (http://www.zend.com) |
|
||||
| Copyright (c) 1998-2009 Zend Technologies Ltd. (http://www.zend.com) |
|
||||
+----------------------------------------------------------------------+
|
||||
| This source file is subject to version 2.00 of the Zend license, |
|
||||
| that is bundled with this package in the file LICENSE, and is |
|
||||
@@ -835,11 +835,8 @@ int zend_call_function(zend_fcall_info *fci, zend_fcall_info_cache *fci_cache TS
|
||||
efree(function_name_lc);
|
||||
}
|
||||
} else if (calling_scope) {
|
||||
char *function_name_lc = zend_str_tolower_dup(fname, fname_len);
|
||||
EX(function_state).function = zend_std_get_static_method(calling_scope, fname, fname_len TSRMLS_CC);
|
||||
|
||||
EX(function_state).function =
|
||||
zend_std_get_static_method(calling_scope, function_name_lc, fname_len TSRMLS_CC);
|
||||
efree(function_name_lc);
|
||||
if (check_scope_or_static && EX(function_state).function
|
||||
&& !(EX(function_state).function->common.fn_flags & ZEND_ACC_STATIC)
|
||||
&& !instanceof_function(check_scope_or_static, calling_scope TSRMLS_CC)) {
|
||||
@@ -901,6 +898,26 @@ int zend_call_function(zend_fcall_info *fci, zend_fcall_info_cache *fci_cache TS
|
||||
}
|
||||
}
|
||||
|
||||
/* Prevent crash because of stack reallocation */
|
||||
if (!call_via_handler &&
|
||||
fci->param_count &&
|
||||
EG(argument_stack).top + fci->param_count > EG(argument_stack).max &&
|
||||
*(void***)fci->params >= EG(argument_stack).elements &&
|
||||
*(void***)fci->params < EG(argument_stack).top_element) {
|
||||
|
||||
/* Manual stack reallocation */
|
||||
void **prev_elements = EG(argument_stack).elements;
|
||||
void **prev_top_element = EG(argument_stack).top_element;
|
||||
|
||||
ZEND_PTR_STACK_RESIZE_IF_NEEDED((&EG(argument_stack)), fci->param_count);
|
||||
for (i=0; i<fci->param_count; i++) {
|
||||
if ((void**)fci->params[i] >= prev_elements &&
|
||||
(void**)fci->params[i] < prev_top_element) {
|
||||
fci->params[i] = (zval**)((void**)fci->params[i] - prev_elements + EG(argument_stack).elements);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
for (i=0; i<fci->param_count; i++) {
|
||||
zval *param;
|
||||
|
||||
|
||||
@@ -2,7 +2,7 @@
|
||||
+----------------------------------------------------------------------+
|
||||
| Zend Engine |
|
||||
+----------------------------------------------------------------------+
|
||||
| Copyright (c) 1998-2008 Zend Technologies Ltd. (http://www.zend.com) |
|
||||
| Copyright (c) 1998-2009 Zend Technologies Ltd. (http://www.zend.com) |
|
||||
+----------------------------------------------------------------------+
|
||||
| This source file is subject to version 2.00 of the Zend license, |
|
||||
| that is bundled with this package in the file LICENSE, and is |
|
||||
|
||||
@@ -2,7 +2,7 @@
|
||||
+----------------------------------------------------------------------+
|
||||
| Zend Engine |
|
||||
+----------------------------------------------------------------------+
|
||||
| Copyright (c) 1998-2008 Zend Technologies Ltd. (http://www.zend.com) |
|
||||
| Copyright (c) 1998-2009 Zend Technologies Ltd. (http://www.zend.com) |
|
||||
+----------------------------------------------------------------------+
|
||||
| This source file is subject to version 2.00 of the Zend license, |
|
||||
| that is bundled with this package in the file LICENSE, and is |
|
||||
|
||||
@@ -2,7 +2,7 @@
|
||||
+----------------------------------------------------------------------+
|
||||
| Zend Engine |
|
||||
+----------------------------------------------------------------------+
|
||||
| Copyright (c) 1998-2008 Zend Technologies Ltd. (http://www.zend.com) |
|
||||
| Copyright (c) 1998-2009 Zend Technologies Ltd. (http://www.zend.com) |
|
||||
+----------------------------------------------------------------------+
|
||||
| This source file is subject to version 2.00 of the Zend license, |
|
||||
| that is bundled with this package in the file LICENSE, and is |
|
||||
|
||||
+1
-1
@@ -2,7 +2,7 @@
|
||||
+----------------------------------------------------------------------+
|
||||
| Zend Engine |
|
||||
+----------------------------------------------------------------------+
|
||||
| Copyright (c) 1998-2008 Zend Technologies Ltd. (http://www.zend.com) |
|
||||
| Copyright (c) 1998-2009 Zend Technologies Ltd. (http://www.zend.com) |
|
||||
+----------------------------------------------------------------------+
|
||||
| This source file is subject to version 2.00 of the Zend license, |
|
||||
| that is bundled with this package in the file LICENSE, and is |
|
||||
|
||||
@@ -2,7 +2,7 @@
|
||||
+----------------------------------------------------------------------+
|
||||
| Zend Engine |
|
||||
+----------------------------------------------------------------------+
|
||||
| Copyright (c) 1998-2008 Zend Technologies Ltd. (http://www.zend.com) |
|
||||
| Copyright (c) 1998-2009 Zend Technologies Ltd. (http://www.zend.com) |
|
||||
+----------------------------------------------------------------------+
|
||||
| This source file is subject to version 2.00 of the Zend license, |
|
||||
| that is bundled with this package in the file LICENSE, and is |
|
||||
|
||||
+3
-3
@@ -2,7 +2,7 @@
|
||||
+----------------------------------------------------------------------+
|
||||
| Zend Engine |
|
||||
+----------------------------------------------------------------------+
|
||||
| Copyright (c) 1998-2008 Zend Technologies Ltd. (http://www.zend.com) |
|
||||
| Copyright (c) 1998-2009 Zend Technologies Ltd. (http://www.zend.com) |
|
||||
+----------------------------------------------------------------------+
|
||||
| This source file is subject to version 2.00 of the Zend license, |
|
||||
| that is bundled with this package in the file LICENSE, and is |
|
||||
@@ -376,7 +376,7 @@ ZEND_API int _zend_hash_index_update_or_next_insert(HashTable *ht, ulong h, void
|
||||
UPDATE_DATA(ht, p, pData, nDataSize);
|
||||
HANDLE_UNBLOCK_INTERRUPTIONS();
|
||||
if ((long)h >= (long)ht->nNextFreeElement) {
|
||||
ht->nNextFreeElement = h + 1;
|
||||
ht->nNextFreeElement = h < LONG_MAX ? h + 1 : LONG_MAX;
|
||||
}
|
||||
if (pDest) {
|
||||
*pDest = p->pData;
|
||||
@@ -404,7 +404,7 @@ ZEND_API int _zend_hash_index_update_or_next_insert(HashTable *ht, ulong h, void
|
||||
HANDLE_UNBLOCK_INTERRUPTIONS();
|
||||
|
||||
if ((long)h >= (long)ht->nNextFreeElement) {
|
||||
ht->nNextFreeElement = h + 1;
|
||||
ht->nNextFreeElement = h < LONG_MAX ? h + 1 : LONG_MAX;
|
||||
}
|
||||
ht->nNumOfElements++;
|
||||
ZEND_HASH_IF_FULL_DO_RESIZE(ht);
|
||||
|
||||
+37
-36
@@ -2,7 +2,7 @@
|
||||
+----------------------------------------------------------------------+
|
||||
| Zend Engine |
|
||||
+----------------------------------------------------------------------+
|
||||
| Copyright (c) 1998-2008 Zend Technologies Ltd. (http://www.zend.com) |
|
||||
| Copyright (c) 1998-2009 Zend Technologies Ltd. (http://www.zend.com) |
|
||||
+----------------------------------------------------------------------+
|
||||
| This source file is subject to version 2.00 of the Zend license, |
|
||||
| that is bundled with this package in the file LICENSE, and is |
|
||||
@@ -298,40 +298,41 @@ END_EXTERN_C()
|
||||
zend_hash_init(ht, n, NULL, ZVAL_PTR_DTOR, persistent)
|
||||
|
||||
|
||||
#define HANDLE_NUMERIC(key, length, func) { \
|
||||
register char *tmp=key; \
|
||||
\
|
||||
if (*tmp=='-') { \
|
||||
tmp++; \
|
||||
} \
|
||||
if ((*tmp>='0' && *tmp<='9')) do { /* possibly a numeric index */ \
|
||||
char *end=key+length-1; \
|
||||
long idx; \
|
||||
\
|
||||
if (*tmp++=='0' && length>2) { /* don't accept numbers with leading zeros */ \
|
||||
break; \
|
||||
} \
|
||||
while (tmp<end) { \
|
||||
if (!(*tmp>='0' && *tmp<='9')) { \
|
||||
break; \
|
||||
} \
|
||||
tmp++; \
|
||||
} \
|
||||
if (tmp==end && *tmp=='\0') { /* a numeric index */ \
|
||||
if (*key=='-') { \
|
||||
idx = strtol(key, NULL, 10); \
|
||||
if (idx!=LONG_MIN) { \
|
||||
return func; \
|
||||
} \
|
||||
} else { \
|
||||
idx = strtol(key, NULL, 10); \
|
||||
if (idx!=LONG_MAX) { \
|
||||
return func; \
|
||||
} \
|
||||
} \
|
||||
} \
|
||||
} while (0); \
|
||||
}
|
||||
#define HANDLE_NUMERIC(key, length, func) do { \
|
||||
register const char *tmp = key; \
|
||||
\
|
||||
if (*tmp == '-') { \
|
||||
tmp++; \
|
||||
} \
|
||||
if (*tmp >= '0' && *tmp <= '9') { /* possibly a numeric index */ \
|
||||
const char *end = key + length - 1; \
|
||||
long idx; \
|
||||
\
|
||||
if ((*end != '\0') /* not a null terminated string */ \
|
||||
|| (*tmp == '0' && length > 2) /* numbers with leading zeros */ \
|
||||
|| (end - tmp > MAX_LENGTH_OF_LONG - 1) /* number too long */ \
|
||||
|| (SIZEOF_LONG == 4 && \
|
||||
end - tmp == MAX_LENGTH_OF_LONG - 1 && \
|
||||
*tmp > '2')) { /* overflow */ \
|
||||
break; \
|
||||
} \
|
||||
idx = (*tmp - '0'); \
|
||||
while (++tmp != end && *tmp >= '0' && *tmp <= '9') { \
|
||||
idx = (idx * 10) + (*tmp - '0'); \
|
||||
} \
|
||||
if (tmp == end) { \
|
||||
if (*key == '-') { \
|
||||
idx = -idx; \
|
||||
if (idx > 0) { /* overflow */ \
|
||||
break; \
|
||||
} \
|
||||
} else if (idx < 0) { /* overflow */ \
|
||||
break; \
|
||||
} \
|
||||
return func; \
|
||||
} \
|
||||
} \
|
||||
} while (0)
|
||||
|
||||
|
||||
static inline int zend_symtable_update(HashTable *ht, char *arKey, uint nKeyLength, void *pData, uint nDataSize, void **pDest) \
|
||||
@@ -343,7 +344,7 @@ static inline int zend_symtable_update(HashTable *ht, char *arKey, uint nKeyLeng
|
||||
|
||||
static inline int zend_symtable_del(HashTable *ht, char *arKey, uint nKeyLength)
|
||||
{
|
||||
HANDLE_NUMERIC(arKey, nKeyLength, zend_hash_index_del(ht, idx))
|
||||
HANDLE_NUMERIC(arKey, nKeyLength, zend_hash_index_del(ht, idx));
|
||||
return zend_hash_del(ht, arKey, nKeyLength);
|
||||
}
|
||||
|
||||
|
||||
+3
-24
@@ -2,7 +2,7 @@
|
||||
+----------------------------------------------------------------------+
|
||||
| Zend Engine |
|
||||
+----------------------------------------------------------------------+
|
||||
| Copyright (c) 1998-2008 Zend Technologies Ltd. (http://www.zend.com) |
|
||||
| Copyright (c) 1998-2009 Zend Technologies Ltd. (http://www.zend.com) |
|
||||
+----------------------------------------------------------------------+
|
||||
| This source file is subject to version 2.00 of the Zend license, |
|
||||
| that is bundled with this package in the file LICENSE, and is |
|
||||
@@ -148,19 +148,11 @@ ZEND_API void zend_highlight(zend_syntax_highlighter_ini *syntax_highlighter_ini
|
||||
zend_printf("<span style=\"color: %s\">", last_color);
|
||||
}
|
||||
}
|
||||
switch (token_type) {
|
||||
case T_END_HEREDOC:
|
||||
zend_html_puts(token.value.str.val, token.value.str.len TSRMLS_CC);
|
||||
break;
|
||||
default:
|
||||
zend_html_puts(LANG_SCNG(yy_text), LANG_SCNG(yy_leng) TSRMLS_CC);
|
||||
break;
|
||||
}
|
||||
|
||||
zend_html_puts(LANG_SCNG(yy_text), LANG_SCNG(yy_leng) TSRMLS_CC);
|
||||
|
||||
if (token.type == IS_STRING) {
|
||||
switch (token_type) {
|
||||
case EOF:
|
||||
goto done;
|
||||
case T_OPEN_TAG:
|
||||
case T_OPEN_TAG_WITH_ECHO:
|
||||
case T_CLOSE_TAG:
|
||||
@@ -178,19 +170,6 @@ ZEND_API void zend_highlight(zend_syntax_highlighter_ini *syntax_highlighter_ini
|
||||
token.type = 0;
|
||||
}
|
||||
|
||||
/* handler for trailing comments, see bug #42767 */
|
||||
if (LANG_SCNG(yy_leng) && LANG_SCNG(_yy_more_len)) {
|
||||
if (last_color != syntax_highlighter_ini->highlight_comment) {
|
||||
if (last_color != syntax_highlighter_ini->highlight_html) {
|
||||
zend_printf("</span>");
|
||||
}
|
||||
if (syntax_highlighter_ini->highlight_comment != syntax_highlighter_ini->highlight_html) {
|
||||
zend_printf("<span style=\"color: %s\">", syntax_highlighter_ini->highlight_comment);
|
||||
}
|
||||
}
|
||||
zend_html_puts(LANG_SCNG(yy_text), LANG_SCNG(_yy_more_len) TSRMLS_CC);
|
||||
}
|
||||
done:
|
||||
if (last_color != syntax_highlighter_ini->highlight_html) {
|
||||
zend_printf("</span>\n");
|
||||
}
|
||||
|
||||
@@ -2,7 +2,7 @@
|
||||
+----------------------------------------------------------------------+
|
||||
| Zend Engine |
|
||||
+----------------------------------------------------------------------+
|
||||
| Copyright (c) 1998-2008 Zend Technologies Ltd. (http://www.zend.com) |
|
||||
| Copyright (c) 1998-2009 Zend Technologies Ltd. (http://www.zend.com) |
|
||||
+----------------------------------------------------------------------+
|
||||
| This source file is subject to version 2.00 of the Zend license, |
|
||||
| that is bundled with this package in the file LICENSE, and is |
|
||||
|
||||
+1
-1
@@ -2,7 +2,7 @@
|
||||
+----------------------------------------------------------------------+
|
||||
| Zend Engine |
|
||||
+----------------------------------------------------------------------+
|
||||
| Copyright (c) 1998-2008 Zend Technologies Ltd. (http://www.zend.com) |
|
||||
| Copyright (c) 1998-2009 Zend Technologies Ltd. (http://www.zend.com) |
|
||||
+----------------------------------------------------------------------+
|
||||
| This source file is subject to version 2.00 of the Zend license, |
|
||||
| that is bundled with this package in the file LICENSE, and is |
|
||||
|
||||
+1
-1
@@ -2,7 +2,7 @@
|
||||
+----------------------------------------------------------------------+
|
||||
| Zend Engine |
|
||||
+----------------------------------------------------------------------+
|
||||
| Copyright (c) 1998-2008 Zend Technologies Ltd. (http://www.zend.com) |
|
||||
| Copyright (c) 1998-2009 Zend Technologies Ltd. (http://www.zend.com) |
|
||||
+----------------------------------------------------------------------+
|
||||
| This source file is subject to version 2.00 of the Zend license, |
|
||||
| that is bundled with this package in the file LICENSE, and is |
|
||||
|
||||
+1
-1
@@ -2,7 +2,7 @@
|
||||
+----------------------------------------------------------------------+
|
||||
| Zend Engine |
|
||||
+----------------------------------------------------------------------+
|
||||
| Copyright (c) 1998-2008 Zend Technologies Ltd. (http://www.zend.com) |
|
||||
| Copyright (c) 1998-2009 Zend Technologies Ltd. (http://www.zend.com) |
|
||||
+----------------------------------------------------------------------+
|
||||
| This source file is subject to version 2.00 of the Zend license, |
|
||||
| that is bundled with this package in the file LICENSE, and is |
|
||||
|
||||
+1
-1
@@ -2,7 +2,7 @@
|
||||
+----------------------------------------------------------------------+
|
||||
| Zend Engine |
|
||||
+----------------------------------------------------------------------+
|
||||
| Copyright (c) 1998-2008 Zend Technologies Ltd. (http://www.zend.com) |
|
||||
| Copyright (c) 1998-2009 Zend Technologies Ltd. (http://www.zend.com) |
|
||||
+----------------------------------------------------------------------+
|
||||
| This source file is subject to version 2.00 of the Zend license, |
|
||||
| that is bundled with this package in the file LICENSE, and is |
|
||||
|
||||
@@ -3,7 +3,7 @@
|
||||
+----------------------------------------------------------------------+
|
||||
| Zend Engine |
|
||||
+----------------------------------------------------------------------+
|
||||
| Copyright (c) 1998-2008 Zend Technologies Ltd. (http://www.zend.com) |
|
||||
| Copyright (c) 1998-2009 Zend Technologies Ltd. (http://www.zend.com) |
|
||||
+----------------------------------------------------------------------+
|
||||
| This source file is subject to version 2.00 of the Zend license, |
|
||||
| that is bundled with this package in the file LICENSE, and is |
|
||||
|
||||
@@ -2,7 +2,7 @@
|
||||
+----------------------------------------------------------------------+
|
||||
| Zend Engine |
|
||||
+----------------------------------------------------------------------+
|
||||
| Copyright (c) 1998-2008 Zend Technologies Ltd. (http://www.zend.com) |
|
||||
| Copyright (c) 1998-2009 Zend Technologies Ltd. (http://www.zend.com) |
|
||||
+----------------------------------------------------------------------+
|
||||
| This source file is subject to version 2.00 of the Zend license, |
|
||||
| that is bundled with this package in the file LICENSE, and is |
|
||||
|
||||
@@ -2,7 +2,7 @@
|
||||
+----------------------------------------------------------------------+
|
||||
| Zend Engine |
|
||||
+----------------------------------------------------------------------+
|
||||
| Copyright (c) 1998-2008 Zend Technologies Ltd. (http://www.zend.com) |
|
||||
| Copyright (c) 1998-2009 Zend Technologies Ltd. (http://www.zend.com) |
|
||||
+----------------------------------------------------------------------+
|
||||
| This source file is subject to version 2.00 of the Zend license, |
|
||||
| that is bundled with this package in the file LICENSE, and is |
|
||||
|
||||
@@ -2,7 +2,7 @@
|
||||
+----------------------------------------------------------------------+
|
||||
| Zend Engine |
|
||||
+----------------------------------------------------------------------+
|
||||
| Copyright (c) 1998-2008 Zend Technologies Ltd. (http://www.zend.com) |
|
||||
| Copyright (c) 1998-2009 Zend Technologies Ltd. (http://www.zend.com) |
|
||||
+----------------------------------------------------------------------+
|
||||
| This source file is subject to version 2.00 of the Zend license, |
|
||||
| that is bundled with this package in the file LICENSE, and is |
|
||||
|
||||
@@ -2,7 +2,7 @@
|
||||
+----------------------------------------------------------------------+
|
||||
| Zend Engine |
|
||||
+----------------------------------------------------------------------+
|
||||
| Copyright (c) 1998-2008 Zend Technologies Ltd. (http://www.zend.com) |
|
||||
| Copyright (c) 1998-2009 Zend Technologies Ltd. (http://www.zend.com) |
|
||||
+----------------------------------------------------------------------+
|
||||
| This source file is subject to version 2.00 of the Zend license, |
|
||||
| that is bundled with this package in the file LICENSE, and is |
|
||||
|
||||
@@ -2,7 +2,7 @@
|
||||
+----------------------------------------------------------------------+
|
||||
| Zend Engine |
|
||||
+----------------------------------------------------------------------+
|
||||
| Copyright (c) 1998-2008 Zend Technologies Ltd. (http://www.zend.com) |
|
||||
| Copyright (c) 1998-2009 Zend Technologies Ltd. (http://www.zend.com) |
|
||||
+----------------------------------------------------------------------+
|
||||
| This source file is subject to version 2.00 of the Zend license, |
|
||||
| that is bundled with this package in the file LICENSE, and is |
|
||||
|
||||
@@ -2,7 +2,7 @@
|
||||
+----------------------------------------------------------------------+
|
||||
| Zend Engine |
|
||||
+----------------------------------------------------------------------+
|
||||
| Copyright (c) 1998-2008 Zend Technologies Ltd. (http://www.zend.com) |
|
||||
| Copyright (c) 1998-2009 Zend Technologies Ltd. (http://www.zend.com) |
|
||||
+----------------------------------------------------------------------+
|
||||
| This source file is subject to version 2.00 of the Zend license, |
|
||||
| that is bundled with this package in the file LICENSE, and is |
|
||||
|
||||
@@ -2,7 +2,7 @@
|
||||
+----------------------------------------------------------------------+
|
||||
| Zend Engine |
|
||||
+----------------------------------------------------------------------+
|
||||
| Copyright (c) 1998-2008 Zend Technologies Ltd. (http://www.zend.com) |
|
||||
| Copyright (c) 1998-2009 Zend Technologies Ltd. (http://www.zend.com) |
|
||||
+----------------------------------------------------------------------+
|
||||
| This source file is subject to version 2.00 of the Zend license, |
|
||||
| that is bundled with this package in the file LICENSE, and is |
|
||||
|
||||
@@ -2033,7 +2033,9 @@ wrong_label:
|
||||
|
||||
<ST_COMMENT,ST_DOC_COMMENT><<EOF>> {
|
||||
zend_error(E_COMPILE_WARNING,"Unterminated comment starting line %d", CG(comment_start_line));
|
||||
return 0;
|
||||
yyless(yyleng - 1);
|
||||
BEGIN(ST_IN_SCRIPTING);
|
||||
return T_COMMENT;
|
||||
}
|
||||
|
||||
|
||||
|
||||
+1
-1
@@ -2,7 +2,7 @@
|
||||
+----------------------------------------------------------------------+
|
||||
| Zend Engine |
|
||||
+----------------------------------------------------------------------+
|
||||
| Copyright (c) 1998-2008 Zend Technologies Ltd. (http://www.zend.com) |
|
||||
| Copyright (c) 1998-2009 Zend Technologies Ltd. (http://www.zend.com) |
|
||||
+----------------------------------------------------------------------+
|
||||
| This source file is subject to version 2.00 of the Zend license, |
|
||||
| that is bundled with this package in the file LICENSE, and is |
|
||||
|
||||
+1
-1
@@ -2,7 +2,7 @@
|
||||
+----------------------------------------------------------------------+
|
||||
| Zend Engine |
|
||||
+----------------------------------------------------------------------+
|
||||
| Copyright (c) 1998-2008 Zend Technologies Ltd. (http://www.zend.com) |
|
||||
| Copyright (c) 1998-2009 Zend Technologies Ltd. (http://www.zend.com) |
|
||||
+----------------------------------------------------------------------+
|
||||
| This source file is subject to version 2.00 of the Zend license, |
|
||||
| that is bundled with this package in the file LICENSE, and is |
|
||||
|
||||
+1
-1
@@ -2,7 +2,7 @@
|
||||
+----------------------------------------------------------------------+
|
||||
| Zend Engine |
|
||||
+----------------------------------------------------------------------+
|
||||
| Copyright (c) 1998-2008 Zend Technologies Ltd. (http://www.zend.com) |
|
||||
| Copyright (c) 1998-2009 Zend Technologies Ltd. (http://www.zend.com) |
|
||||
+----------------------------------------------------------------------+
|
||||
| This source file is subject to version 2.00 of the Zend license, |
|
||||
| that is bundled with this package in the file LICENSE, and is |
|
||||
|
||||
+1
-1
@@ -2,7 +2,7 @@
|
||||
+----------------------------------------------------------------------+
|
||||
| Zend Engine |
|
||||
+----------------------------------------------------------------------+
|
||||
| Copyright (c) 1998-2008 Zend Technologies Ltd. (http://www.zend.com) |
|
||||
| Copyright (c) 1998-2009 Zend Technologies Ltd. (http://www.zend.com) |
|
||||
+----------------------------------------------------------------------+
|
||||
| This source file is subject to version 2.00 of the Zend license, |
|
||||
| that is bundled with this package in the file LICENSE, and is |
|
||||
|
||||
+1
-1
@@ -2,7 +2,7 @@
|
||||
+----------------------------------------------------------------------+
|
||||
| Zend Engine |
|
||||
+----------------------------------------------------------------------+
|
||||
| Copyright (c) 1998-2008 Zend Technologies Ltd. (http://www.zend.com) |
|
||||
| Copyright (c) 1998-2009 Zend Technologies Ltd. (http://www.zend.com) |
|
||||
+----------------------------------------------------------------------+
|
||||
| This source file is subject to version 2.00 of the Zend license, |
|
||||
| that is bundled with this package in the file LICENSE, and is |
|
||||
|
||||
+81
-81
@@ -2,7 +2,7 @@
|
||||
+----------------------------------------------------------------------+
|
||||
| Zend Engine |
|
||||
+----------------------------------------------------------------------+
|
||||
| Copyright (c) 1998-2008 Zend Technologies Ltd. (http://www.zend.com) |
|
||||
| Copyright (c) 1998-2009 Zend Technologies Ltd. (http://www.zend.com) |
|
||||
+----------------------------------------------------------------------+
|
||||
| This source file is subject to version 2.00 of the Zend license, |
|
||||
| that is bundled with this package in the file LICENSE, and is |
|
||||
@@ -37,8 +37,8 @@ static zend_encoding* zend_multibyte_detect_utf_encoding(char *script, int scrip
|
||||
/*
|
||||
* encodings
|
||||
*/
|
||||
const char *ucs2_aliases[] = {"ISO-10646-UCS-2", "UCS2" , "UNICODE", NULL};
|
||||
zend_encoding encoding_ucs2 = {
|
||||
static const char *ucs2_aliases[] = {"ISO-10646-UCS-2", "UCS2" , "UNICODE", NULL};
|
||||
static zend_encoding encoding_ucs2 = {
|
||||
NULL,
|
||||
NULL,
|
||||
"UCS-2",
|
||||
@@ -46,7 +46,7 @@ zend_encoding encoding_ucs2 = {
|
||||
0
|
||||
};
|
||||
|
||||
zend_encoding encoding_ucs2be = {
|
||||
static zend_encoding encoding_ucs2be = {
|
||||
NULL,
|
||||
NULL,
|
||||
"UCS-2BE",
|
||||
@@ -54,7 +54,7 @@ zend_encoding encoding_ucs2be = {
|
||||
0
|
||||
};
|
||||
|
||||
zend_encoding encoding_ucs2le = {
|
||||
static zend_encoding encoding_ucs2le = {
|
||||
NULL,
|
||||
NULL,
|
||||
"UCS-2LE",
|
||||
@@ -62,8 +62,8 @@ zend_encoding encoding_ucs2le = {
|
||||
0
|
||||
};
|
||||
|
||||
const char *ucs4_aliases[] = {"ISO-10646-UCS-4", "UCS4", NULL};
|
||||
zend_encoding encoding_ucs4 = {
|
||||
static const char *ucs4_aliases[] = {"ISO-10646-UCS-4", "UCS4", NULL};
|
||||
static zend_encoding encoding_ucs4 = {
|
||||
NULL,
|
||||
NULL,
|
||||
"UCS-4",
|
||||
@@ -71,7 +71,7 @@ zend_encoding encoding_ucs4 = {
|
||||
0
|
||||
};
|
||||
|
||||
zend_encoding encoding_ucs4be = {
|
||||
static zend_encoding encoding_ucs4be = {
|
||||
NULL,
|
||||
NULL,
|
||||
"UCS-4BE",
|
||||
@@ -79,7 +79,7 @@ zend_encoding encoding_ucs4be = {
|
||||
0
|
||||
};
|
||||
|
||||
zend_encoding encoding_ucs4le = {
|
||||
static zend_encoding encoding_ucs4le = {
|
||||
NULL,
|
||||
NULL,
|
||||
"UCS-4LE",
|
||||
@@ -87,8 +87,8 @@ zend_encoding encoding_ucs4le = {
|
||||
0
|
||||
};
|
||||
|
||||
const char *utf32_aliases[] = {"utf32", NULL};
|
||||
zend_encoding encoding_utf32 = {
|
||||
static const char *utf32_aliases[] = {"utf32", NULL};
|
||||
static zend_encoding encoding_utf32 = {
|
||||
NULL,
|
||||
NULL,
|
||||
"UTF-32",
|
||||
@@ -96,7 +96,7 @@ zend_encoding encoding_utf32 = {
|
||||
0
|
||||
};
|
||||
|
||||
zend_encoding encoding_utf32be = {
|
||||
static zend_encoding encoding_utf32be = {
|
||||
NULL,
|
||||
NULL,
|
||||
"UTF-32BE",
|
||||
@@ -104,7 +104,7 @@ zend_encoding encoding_utf32be = {
|
||||
0
|
||||
};
|
||||
|
||||
zend_encoding encoding_utf32le = {
|
||||
static zend_encoding encoding_utf32le = {
|
||||
NULL,
|
||||
NULL,
|
||||
"UTF-32LE",
|
||||
@@ -112,8 +112,8 @@ zend_encoding encoding_utf32le = {
|
||||
0
|
||||
};
|
||||
|
||||
const char *utf16_aliases[] = {"utf16", NULL};
|
||||
zend_encoding encoding_utf16 = {
|
||||
static const char *utf16_aliases[] = {"utf16", NULL};
|
||||
static zend_encoding encoding_utf16 = {
|
||||
NULL,
|
||||
NULL,
|
||||
"UTF-16",
|
||||
@@ -121,7 +121,7 @@ zend_encoding encoding_utf16 = {
|
||||
0
|
||||
};
|
||||
|
||||
zend_encoding encoding_utf16be = {
|
||||
static zend_encoding encoding_utf16be = {
|
||||
NULL,
|
||||
NULL,
|
||||
"UTF-16BE",
|
||||
@@ -129,7 +129,7 @@ zend_encoding encoding_utf16be = {
|
||||
0
|
||||
};
|
||||
|
||||
zend_encoding encoding_utf16le = {
|
||||
static zend_encoding encoding_utf16le = {
|
||||
NULL,
|
||||
NULL,
|
||||
"UTF-16LE",
|
||||
@@ -137,8 +137,8 @@ zend_encoding encoding_utf16le = {
|
||||
0
|
||||
};
|
||||
|
||||
const char *utf8_aliases[] = {"utf8", NULL};
|
||||
zend_encoding encoding_utf8 = {
|
||||
static const char *utf8_aliases[] = {"utf8", NULL};
|
||||
static zend_encoding encoding_utf8 = {
|
||||
NULL,
|
||||
NULL,
|
||||
"UTF-8",
|
||||
@@ -146,8 +146,8 @@ zend_encoding encoding_utf8 = {
|
||||
1
|
||||
};
|
||||
|
||||
const char *ascii_aliases[] = {"ANSI_X3.4-1968", "iso-ir-6", "ANSI_X3.4-1986", "ISO_646.irv:1991", "US-ASCII", "ISO646-US", "us", "IBM367", "cp367", "csASCII", NULL};
|
||||
zend_encoding encoding_ascii = {
|
||||
static const char *ascii_aliases[] = {"ANSI_X3.4-1968", "iso-ir-6", "ANSI_X3.4-1986", "ISO_646.irv:1991", "US-ASCII", "ISO646-US", "us", "IBM367", "cp367", "csASCII", NULL};
|
||||
static zend_encoding encoding_ascii = {
|
||||
NULL,
|
||||
NULL,
|
||||
"ASCII",
|
||||
@@ -155,8 +155,8 @@ zend_encoding encoding_ascii = {
|
||||
1
|
||||
};
|
||||
|
||||
const char *euc_jp_aliases[] = {"EUC", "EUC_JP", "eucJP", "x-euc-jp", NULL};
|
||||
zend_encoding encoding_euc_jp = {
|
||||
static const char *euc_jp_aliases[] = {"EUC", "EUC_JP", "eucJP", "x-euc-jp", NULL};
|
||||
static zend_encoding encoding_euc_jp = {
|
||||
NULL,
|
||||
NULL,
|
||||
"EUC-JP",
|
||||
@@ -164,8 +164,8 @@ zend_encoding encoding_euc_jp = {
|
||||
1
|
||||
};
|
||||
|
||||
const char *sjis_aliases[] = {"x-sjis", "SJIS", "SHIFT-JIS", NULL};
|
||||
zend_encoding encoding_sjis = {
|
||||
static const char *sjis_aliases[] = {"x-sjis", "SJIS", "SHIFT-JIS", NULL};
|
||||
static zend_encoding encoding_sjis = {
|
||||
sjis_input_filter,
|
||||
sjis_output_filter,
|
||||
"Shift_JIS",
|
||||
@@ -173,8 +173,8 @@ zend_encoding encoding_sjis = {
|
||||
0
|
||||
};
|
||||
|
||||
const char *eucjp_win_aliases[] = {"eucJP-open", NULL};
|
||||
zend_encoding encoding_eucjp_win = {
|
||||
static const char *eucjp_win_aliases[] = {"eucJP-open", NULL};
|
||||
static zend_encoding encoding_eucjp_win = {
|
||||
NULL,
|
||||
NULL,
|
||||
"eucJP-win",
|
||||
@@ -182,8 +182,8 @@ zend_encoding encoding_eucjp_win = {
|
||||
1
|
||||
};
|
||||
|
||||
const char *sjis_win_aliases[] = {"SJIS-open", "MS_Kanji", "Windows-31J", "CP932", NULL};
|
||||
zend_encoding encoding_sjis_win = {
|
||||
static const char *sjis_win_aliases[] = {"SJIS-open", "MS_Kanji", "Windows-31J", "CP932", NULL};
|
||||
static zend_encoding encoding_sjis_win = {
|
||||
/* sjis-filters does not care about diffs of Shift_JIS and CP932 */
|
||||
sjis_input_filter,
|
||||
sjis_output_filter,
|
||||
@@ -192,8 +192,8 @@ zend_encoding encoding_sjis_win = {
|
||||
0
|
||||
};
|
||||
|
||||
const char *jis_aliases[] = {"ISO-2022-JP", NULL};
|
||||
zend_encoding encoding_jis = {
|
||||
static const char *jis_aliases[] = {"ISO-2022-JP", NULL};
|
||||
static zend_encoding encoding_jis = {
|
||||
NULL,
|
||||
NULL,
|
||||
"JIS",
|
||||
@@ -201,8 +201,8 @@ zend_encoding encoding_jis = {
|
||||
0
|
||||
};
|
||||
|
||||
const char *euc_cn_aliases[] = {"CN-GB", "EUC_CN", "eucCN", "x-euc-cn", "gb2312", NULL};
|
||||
zend_encoding encoding_euc_cn = {
|
||||
static const char *euc_cn_aliases[] = {"CN-GB", "EUC_CN", "eucCN", "x-euc-cn", "gb2312", NULL};
|
||||
static zend_encoding encoding_euc_cn = {
|
||||
NULL,
|
||||
NULL,
|
||||
"EUC-CN",
|
||||
@@ -210,8 +210,8 @@ zend_encoding encoding_euc_cn = {
|
||||
1
|
||||
};
|
||||
|
||||
const char *cp936_aliases[] = {"CP-936", NULL};
|
||||
zend_encoding encoding_cp936 = {
|
||||
static const char *cp936_aliases[] = {"CP-936", NULL};
|
||||
static zend_encoding encoding_cp936 = {
|
||||
NULL,
|
||||
NULL,
|
||||
"CP936",
|
||||
@@ -219,8 +219,8 @@ zend_encoding encoding_cp936 = {
|
||||
0
|
||||
};
|
||||
|
||||
const char *hz_aliases[] = {"HZ-GB-2312", NULL};
|
||||
zend_encoding encoding_hz = {
|
||||
static const char *hz_aliases[] = {"HZ-GB-2312", NULL};
|
||||
static zend_encoding encoding_hz = {
|
||||
NULL,
|
||||
NULL,
|
||||
"HZ",
|
||||
@@ -228,8 +228,8 @@ zend_encoding encoding_hz = {
|
||||
0
|
||||
};
|
||||
|
||||
const char *euc_tw_aliases[] = {"EUC_TW", "eucTW", "x-euc-tw", NULL};
|
||||
zend_encoding encoding_euc_tw = {
|
||||
static const char *euc_tw_aliases[] = {"EUC_TW", "eucTW", "x-euc-tw", NULL};
|
||||
static zend_encoding encoding_euc_tw = {
|
||||
NULL,
|
||||
NULL,
|
||||
"EUC-TW",
|
||||
@@ -237,8 +237,8 @@ zend_encoding encoding_euc_tw = {
|
||||
1
|
||||
};
|
||||
|
||||
const char *big5_aliases[] = {"BIG5", "CN-BIG5", "BIG-FIVE", "BIGFIVE", "CP950", NULL};
|
||||
zend_encoding encoding_big5 = {
|
||||
static const char *big5_aliases[] = {"BIG5", "CN-BIG5", "BIG-FIVE", "BIGFIVE", "CP950", NULL};
|
||||
static zend_encoding encoding_big5 = {
|
||||
NULL,
|
||||
NULL,
|
||||
"BIG-5",
|
||||
@@ -246,8 +246,8 @@ zend_encoding encoding_big5 = {
|
||||
0
|
||||
};
|
||||
|
||||
const char *euc_kr_aliases[] = {"EUC_KR", "eucKR", "x-euc-kr", NULL};
|
||||
zend_encoding encoding_euc_kr = {
|
||||
static const char *euc_kr_aliases[] = {"EUC_KR", "eucKR", "x-euc-kr", NULL};
|
||||
static zend_encoding encoding_euc_kr = {
|
||||
NULL,
|
||||
NULL,
|
||||
"EUC-KR",
|
||||
@@ -255,8 +255,8 @@ zend_encoding encoding_euc_kr = {
|
||||
1
|
||||
};
|
||||
|
||||
const char *uhc_aliases[] = {"CP949", NULL};
|
||||
zend_encoding encoding_uhc = {
|
||||
static const char *uhc_aliases[] = {"CP949", NULL};
|
||||
static zend_encoding encoding_uhc = {
|
||||
NULL,
|
||||
NULL,
|
||||
"UHC",
|
||||
@@ -264,7 +264,7 @@ zend_encoding encoding_uhc = {
|
||||
1
|
||||
};
|
||||
|
||||
zend_encoding encoding_2022kr = {
|
||||
static zend_encoding encoding_2022kr = {
|
||||
NULL,
|
||||
NULL,
|
||||
"ISO-2022-KR",
|
||||
@@ -272,8 +272,8 @@ zend_encoding encoding_2022kr = {
|
||||
0
|
||||
};
|
||||
|
||||
const char *cp1252_aliases[] = {"cp1252", NULL};
|
||||
zend_encoding encoding_cp1252 = {
|
||||
static const char *cp1252_aliases[] = {"cp1252", NULL};
|
||||
static zend_encoding encoding_cp1252 = {
|
||||
NULL,
|
||||
NULL,
|
||||
"Windows-1252",
|
||||
@@ -281,8 +281,8 @@ zend_encoding encoding_cp1252 = {
|
||||
1
|
||||
};
|
||||
|
||||
const char *iso_8859_1_aliases[] = {"ISO_8859-1", "latin1", NULL};
|
||||
zend_encoding encoding_8859_1 = {
|
||||
static const char *iso_8859_1_aliases[] = {"ISO_8859-1", "latin1", NULL};
|
||||
static zend_encoding encoding_8859_1 = {
|
||||
NULL,
|
||||
NULL,
|
||||
"ISO-8859-1",
|
||||
@@ -290,8 +290,8 @@ zend_encoding encoding_8859_1 = {
|
||||
1
|
||||
};
|
||||
|
||||
const char *iso_8859_2_aliases[] = {"ISO_8859-2", "latin2", NULL};
|
||||
zend_encoding encoding_8859_2 = {
|
||||
static const char *iso_8859_2_aliases[] = {"ISO_8859-2", "latin2", NULL};
|
||||
static zend_encoding encoding_8859_2 = {
|
||||
NULL,
|
||||
NULL,
|
||||
"ISO-8859-2",
|
||||
@@ -299,8 +299,8 @@ zend_encoding encoding_8859_2 = {
|
||||
1
|
||||
};
|
||||
|
||||
const char *iso_8859_3_aliases[] = {"ISO_8859-3", "latin3", NULL};
|
||||
zend_encoding encoding_8859_3 = {
|
||||
static const char *iso_8859_3_aliases[] = {"ISO_8859-3", "latin3", NULL};
|
||||
static zend_encoding encoding_8859_3 = {
|
||||
NULL,
|
||||
NULL,
|
||||
"ISO-8859-3",
|
||||
@@ -308,8 +308,8 @@ zend_encoding encoding_8859_3 = {
|
||||
1
|
||||
};
|
||||
|
||||
const char *iso_8859_4_aliases[] = {"ISO_8859-4", "latin4", NULL};
|
||||
zend_encoding encoding_8859_4 = {
|
||||
static const char *iso_8859_4_aliases[] = {"ISO_8859-4", "latin4", NULL};
|
||||
static zend_encoding encoding_8859_4 = {
|
||||
NULL,
|
||||
NULL,
|
||||
"ISO-8859-4",
|
||||
@@ -317,8 +317,8 @@ zend_encoding encoding_8859_4 = {
|
||||
1
|
||||
};
|
||||
|
||||
const char *iso_8859_5_aliases[] = {"ISO_8859-5", "cyrillic", NULL};
|
||||
zend_encoding encoding_8859_5 = {
|
||||
static const char *iso_8859_5_aliases[] = {"ISO_8859-5", "cyrillic", NULL};
|
||||
static zend_encoding encoding_8859_5 = {
|
||||
NULL,
|
||||
NULL,
|
||||
"ISO-8859-5",
|
||||
@@ -326,8 +326,8 @@ zend_encoding encoding_8859_5 = {
|
||||
1
|
||||
};
|
||||
|
||||
const char *iso_8859_6_aliases[] = {"ISO_8859-6", "arabic", NULL};
|
||||
zend_encoding encoding_8859_6 = {
|
||||
static const char *iso_8859_6_aliases[] = {"ISO_8859-6", "arabic", NULL};
|
||||
static zend_encoding encoding_8859_6 = {
|
||||
NULL,
|
||||
NULL,
|
||||
"ISO-8859-6",
|
||||
@@ -335,8 +335,8 @@ zend_encoding encoding_8859_6 = {
|
||||
1
|
||||
};
|
||||
|
||||
const char *iso_8859_7_aliases[] = {"ISO_8859-7", "greek", NULL};
|
||||
zend_encoding encoding_8859_7 = {
|
||||
static const char *iso_8859_7_aliases[] = {"ISO_8859-7", "greek", NULL};
|
||||
static zend_encoding encoding_8859_7 = {
|
||||
NULL,
|
||||
NULL,
|
||||
"ISO-8859-7",
|
||||
@@ -344,8 +344,8 @@ zend_encoding encoding_8859_7 = {
|
||||
1
|
||||
};
|
||||
|
||||
const char *iso_8859_8_aliases[] = {"ISO_8859-8", "hebrew", NULL};
|
||||
zend_encoding encoding_8859_8 = {
|
||||
static const char *iso_8859_8_aliases[] = {"ISO_8859-8", "hebrew", NULL};
|
||||
static zend_encoding encoding_8859_8 = {
|
||||
NULL,
|
||||
NULL,
|
||||
"ISO-8859-8",
|
||||
@@ -353,8 +353,8 @@ zend_encoding encoding_8859_8 = {
|
||||
1
|
||||
};
|
||||
|
||||
const char *iso_8859_9_aliases[] = {"ISO_8859-9", "latin5", NULL};
|
||||
zend_encoding encoding_8859_9 = {
|
||||
static const char *iso_8859_9_aliases[] = {"ISO_8859-9", "latin5", NULL};
|
||||
static zend_encoding encoding_8859_9 = {
|
||||
NULL,
|
||||
NULL,
|
||||
"ISO-8859-9",
|
||||
@@ -362,8 +362,8 @@ zend_encoding encoding_8859_9 = {
|
||||
1
|
||||
};
|
||||
|
||||
const char *iso_8859_10_aliases[] = {"ISO_8859-10", "latin6", NULL};
|
||||
zend_encoding encoding_8859_10 = {
|
||||
static const char *iso_8859_10_aliases[] = {"ISO_8859-10", "latin6", NULL};
|
||||
static zend_encoding encoding_8859_10 = {
|
||||
NULL,
|
||||
NULL,
|
||||
"ISO-8859-10",
|
||||
@@ -371,8 +371,8 @@ zend_encoding encoding_8859_10 = {
|
||||
1
|
||||
};
|
||||
|
||||
const char *iso_8859_13_aliases[] = {"ISO_8859-13", NULL};
|
||||
zend_encoding encoding_8859_13 = {
|
||||
static const char *iso_8859_13_aliases[] = {"ISO_8859-13", NULL};
|
||||
static zend_encoding encoding_8859_13 = {
|
||||
NULL,
|
||||
NULL,
|
||||
"ISO-8859-13",
|
||||
@@ -380,8 +380,8 @@ zend_encoding encoding_8859_13 = {
|
||||
1
|
||||
};
|
||||
|
||||
const char *iso_8859_14_aliases[] = {"ISO_8859-14", "latin8", NULL};
|
||||
zend_encoding encoding_8859_14 = {
|
||||
static const char *iso_8859_14_aliases[] = {"ISO_8859-14", "latin8", NULL};
|
||||
static zend_encoding encoding_8859_14 = {
|
||||
NULL,
|
||||
NULL,
|
||||
"ISO-8859-14",
|
||||
@@ -389,8 +389,8 @@ zend_encoding encoding_8859_14 = {
|
||||
1
|
||||
};
|
||||
|
||||
const char *iso_8859_15_aliases[] = {"ISO_8859-15", NULL};
|
||||
zend_encoding encoding_8859_15 = {
|
||||
static const char *iso_8859_15_aliases[] = {"ISO_8859-15", NULL};
|
||||
static zend_encoding encoding_8859_15 = {
|
||||
NULL,
|
||||
NULL,
|
||||
"ISO-8859-15",
|
||||
@@ -398,8 +398,8 @@ zend_encoding encoding_8859_15 = {
|
||||
1
|
||||
};
|
||||
|
||||
const char *cp1251_aliases[] = {"CP1251", "CP-1251", "WINDOWS-1251", NULL};
|
||||
zend_encoding encoding_cp1251 = {
|
||||
static const char *cp1251_aliases[] = {"CP1251", "CP-1251", "WINDOWS-1251", NULL};
|
||||
static zend_encoding encoding_cp1251 = {
|
||||
NULL,
|
||||
NULL,
|
||||
"Windows-1251",
|
||||
@@ -407,8 +407,8 @@ zend_encoding encoding_cp1251 = {
|
||||
1
|
||||
};
|
||||
|
||||
const char *cp866_aliases[] = {"CP866", "CP-866", "IBM-866", NULL};
|
||||
zend_encoding encoding_cp866 = {
|
||||
static const char *cp866_aliases[] = {"CP866", "CP-866", "IBM-866", NULL};
|
||||
static zend_encoding encoding_cp866 = {
|
||||
NULL,
|
||||
NULL,
|
||||
"CP866",
|
||||
@@ -416,8 +416,8 @@ zend_encoding encoding_cp866 = {
|
||||
1
|
||||
};
|
||||
|
||||
const char *koi8r_aliases[] = {"KOI8-R", "KOI8R", NULL};
|
||||
zend_encoding encoding_koi8r = {
|
||||
static const char *koi8r_aliases[] = {"KOI8-R", "KOI8R", NULL};
|
||||
static zend_encoding encoding_koi8r = {
|
||||
NULL,
|
||||
NULL,
|
||||
"KOI8-R",
|
||||
@@ -425,7 +425,7 @@ zend_encoding encoding_koi8r = {
|
||||
1
|
||||
};
|
||||
|
||||
zend_encoding *zend_encoding_table[] = {
|
||||
static zend_encoding *zend_encoding_table[] = {
|
||||
&encoding_ucs4,
|
||||
&encoding_ucs4be,
|
||||
&encoding_ucs4le,
|
||||
|
||||
@@ -2,7 +2,7 @@
|
||||
+----------------------------------------------------------------------+
|
||||
| Zend Engine |
|
||||
+----------------------------------------------------------------------+
|
||||
| Copyright (c) 1998-2008 Zend Technologies Ltd. (http://www.zend.com) |
|
||||
| Copyright (c) 1998-2009 Zend Technologies Ltd. (http://www.zend.com) |
|
||||
+----------------------------------------------------------------------+
|
||||
| This source file is subject to version 2.00 of the Zend license, |
|
||||
| that is bundled with this package in the file LICENSE, and is |
|
||||
|
||||
@@ -2,7 +2,7 @@
|
||||
+----------------------------------------------------------------------+
|
||||
| Zend Engine |
|
||||
+----------------------------------------------------------------------+
|
||||
| Copyright (c) 1998-2008 Zend Technologies Ltd. (http://www.zend.com) |
|
||||
| Copyright (c) 1998-2009 Zend Technologies Ltd. (http://www.zend.com) |
|
||||
+----------------------------------------------------------------------+
|
||||
| This source file is subject to version 2.00 of the Zend license, |
|
||||
| that is bundled with this package in the file LICENSE, and is |
|
||||
|
||||
+51
-36
@@ -2,7 +2,7 @@
|
||||
+----------------------------------------------------------------------+
|
||||
| Zend Engine |
|
||||
+----------------------------------------------------------------------+
|
||||
| Copyright (c) 1998-2008 Zend Technologies Ltd. (http://www.zend.com) |
|
||||
| Copyright (c) 1998-2009 Zend Technologies Ltd. (http://www.zend.com) |
|
||||
+----------------------------------------------------------------------+
|
||||
| This source file is subject to version 2.00 of the Zend license, |
|
||||
| that is bundled with this package in the file LICENSE, and is |
|
||||
@@ -472,6 +472,10 @@ zval *zend_std_read_dimension(zval *object, zval *offset, int type TSRMLS_DC)
|
||||
}
|
||||
return 0;
|
||||
}
|
||||
if (EG(exception)) {
|
||||
zval_ptr_dtor(&retval);
|
||||
return 0;
|
||||
}
|
||||
|
||||
/* Undo PZVAL_LOCK() */
|
||||
retval->refcount--;
|
||||
@@ -560,8 +564,8 @@ static zval **zend_std_get_property_ptr_ptr(zval *object, zval *member TSRMLS_DC
|
||||
zend_guard *guard;
|
||||
|
||||
if (!zobj->ce->__get ||
|
||||
zend_get_property_guard(zobj, property_info, member, &guard) != SUCCESS ||
|
||||
guard->in_get) {
|
||||
zend_get_property_guard(zobj, property_info, member, &guard) != SUCCESS ||
|
||||
(property_info && guard->in_get)) {
|
||||
/* we don't have access controls - will just add it */
|
||||
new_zval = &EG(uninitialized_zval);
|
||||
|
||||
@@ -758,6 +762,24 @@ static inline zend_class_entry * zend_get_function_root_class(zend_function *fbc
|
||||
}
|
||||
|
||||
|
||||
static inline union _zend_function *zend_get_user_call_function(zend_class_entry *ce, const char *method_name, int method_len) /* {{{ */
|
||||
{
|
||||
zend_internal_function *call_user_call = emalloc(sizeof(zend_internal_function));
|
||||
call_user_call->type = ZEND_INTERNAL_FUNCTION;
|
||||
call_user_call->module = ce->module;
|
||||
call_user_call->handler = zend_std_call_user_call;
|
||||
call_user_call->arg_info = NULL;
|
||||
call_user_call->num_args = 0;
|
||||
call_user_call->scope = ce;
|
||||
call_user_call->fn_flags = 0;
|
||||
call_user_call->function_name = estrndup(method_name, method_len);
|
||||
call_user_call->pass_rest_by_reference = 0;
|
||||
call_user_call->return_reference = ZEND_RETURN_VALUE;
|
||||
|
||||
return (union _zend_function *)call_user_call;
|
||||
}
|
||||
/* }}} */
|
||||
|
||||
static union _zend_function *zend_std_get_method(zval **object_ptr, char *method_name, int method_len TSRMLS_DC)
|
||||
{
|
||||
zend_object *zobj;
|
||||
@@ -774,19 +796,7 @@ static union _zend_function *zend_std_get_method(zval **object_ptr, char *method
|
||||
if (zend_hash_find(&zobj->ce->function_table, lc_method_name, method_len+1, (void **)&fbc) == FAILURE) {
|
||||
free_alloca_with_limit(lc_method_name, use_heap);
|
||||
if (zobj->ce->__call) {
|
||||
zend_internal_function *call_user_call = emalloc(sizeof(zend_internal_function));
|
||||
call_user_call->type = ZEND_INTERNAL_FUNCTION;
|
||||
call_user_call->module = zobj->ce->module;
|
||||
call_user_call->handler = zend_std_call_user_call;
|
||||
call_user_call->arg_info = NULL;
|
||||
call_user_call->num_args = 0;
|
||||
call_user_call->scope = zobj->ce;
|
||||
call_user_call->fn_flags = 0;
|
||||
call_user_call->function_name = estrndup(method_name, method_len);
|
||||
call_user_call->pass_rest_by_reference = 0;
|
||||
call_user_call->return_reference = ZEND_RETURN_VALUE;
|
||||
|
||||
return (union _zend_function *)call_user_call;
|
||||
return zend_get_user_call_function(zobj->ce, method_name, method_len);
|
||||
} else {
|
||||
return NULL;
|
||||
}
|
||||
@@ -797,12 +807,18 @@ static union _zend_function *zend_std_get_method(zval **object_ptr, char *method
|
||||
zend_function *updated_fbc;
|
||||
|
||||
/* Ensure that if we're calling a private function, we're allowed to do so.
|
||||
* If we're not and __call() handler exists, invoke it, otherwise error out.
|
||||
*/
|
||||
updated_fbc = zend_check_private_int(fbc, Z_OBJ_HANDLER_P(object, get_class_entry)(object TSRMLS_CC), lc_method_name, method_len TSRMLS_CC);
|
||||
if (!updated_fbc) {
|
||||
zend_error(E_ERROR, "Call to %s method %s::%s() from context '%s'", zend_visibility_string(fbc->common.fn_flags), ZEND_FN_SCOPE_NAME(fbc), method_name, EG(scope) ? EG(scope)->name : "");
|
||||
if (updated_fbc) {
|
||||
fbc = updated_fbc;
|
||||
} else {
|
||||
if (zobj->ce->__call) {
|
||||
fbc = zend_get_user_call_function(zobj->ce, method_name, method_len);
|
||||
} else {
|
||||
zend_error(E_ERROR, "Call to %s method %s::%s() from context '%s'", zend_visibility_string(fbc->common.fn_flags), ZEND_FN_SCOPE_NAME(fbc), method_name, EG(scope) ? EG(scope)->name : "");
|
||||
}
|
||||
}
|
||||
fbc = updated_fbc;
|
||||
} else {
|
||||
/* Ensure that we haven't overridden a private function and end up calling
|
||||
* the overriding public function...
|
||||
@@ -820,9 +836,14 @@ static union _zend_function *zend_std_get_method(zval **object_ptr, char *method
|
||||
}
|
||||
if ((fbc->common.fn_flags & ZEND_ACC_PROTECTED)) {
|
||||
/* Ensure that if we're calling a protected function, we're allowed to do so.
|
||||
* If we're not and __call() handler exists, invoke it, otherwise error out.
|
||||
*/
|
||||
if (!zend_check_protected(zend_get_function_root_class(fbc), EG(scope))) {
|
||||
zend_error(E_ERROR, "Call to %s method %s::%s() from context '%s'", zend_visibility_string(fbc->common.fn_flags), ZEND_FN_SCOPE_NAME(fbc), method_name, EG(scope) ? EG(scope)->name : "");
|
||||
if (zobj->ce->__call) {
|
||||
fbc = zend_get_user_call_function(zobj->ce, method_name, method_len);
|
||||
} else {
|
||||
zend_error(E_ERROR, "Call to %s method %s::%s() from context '%s'", zend_visibility_string(fbc->common.fn_flags), ZEND_FN_SCOPE_NAME(fbc), method_name, EG(scope) ? EG(scope)->name : "");
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -835,27 +856,19 @@ static union _zend_function *zend_std_get_method(zval **object_ptr, char *method
|
||||
/* This is not (yet?) in the API, but it belongs in the built-in objects callbacks */
|
||||
ZEND_API zend_function *zend_std_get_static_method(zend_class_entry *ce, char *function_name_strval, int function_name_strlen TSRMLS_DC)
|
||||
{
|
||||
zend_function *fbc;
|
||||
char *lc_function_name;
|
||||
zend_function *fbc;
|
||||
|
||||
lc_function_name = zend_str_tolower_dup(function_name_strval, function_name_strlen);
|
||||
|
||||
if (zend_hash_find(&ce->function_table, lc_function_name, function_name_strlen+1, (void **) &fbc)==FAILURE) {
|
||||
efree(lc_function_name);
|
||||
|
||||
if (zend_hash_find(&ce->function_table, function_name_strval, function_name_strlen+1, (void **) &fbc)==FAILURE) {
|
||||
if (ce->__call &&
|
||||
EG(This) &&
|
||||
Z_OBJ_HT_P(EG(This))->get_class_entry &&
|
||||
instanceof_function(Z_OBJCE_P(EG(This)), ce TSRMLS_CC)) {
|
||||
zend_internal_function *call_user_call = emalloc(sizeof(zend_internal_function));
|
||||
|
||||
call_user_call->type = ZEND_INTERNAL_FUNCTION;
|
||||
call_user_call->module = ce->module;
|
||||
call_user_call->handler = zend_std_call_user_call;
|
||||
call_user_call->arg_info = NULL;
|
||||
call_user_call->num_args = 0;
|
||||
call_user_call->scope = ce;
|
||||
call_user_call->fn_flags = 0;
|
||||
call_user_call->function_name = estrndup(function_name_strval, function_name_strlen);
|
||||
call_user_call->pass_rest_by_reference = 0;
|
||||
call_user_call->return_reference = ZEND_RETURN_VALUE;
|
||||
|
||||
return (union _zend_function *)call_user_call;
|
||||
return zend_get_user_call_function(ce, function_name_strval, function_name_strlen);
|
||||
} else {
|
||||
char *class_name = ce->name;
|
||||
|
||||
@@ -865,6 +878,8 @@ ZEND_API zend_function *zend_std_get_static_method(zend_class_entry *ce, char *f
|
||||
zend_error(E_ERROR, "Call to undefined method %s::%s()", class_name, function_name_strval);
|
||||
}
|
||||
}
|
||||
efree(lc_function_name);
|
||||
|
||||
if (fbc->op_array.fn_flags & ZEND_ACC_PUBLIC) {
|
||||
/* No further checks necessary, most common case */
|
||||
} else if (fbc->op_array.fn_flags & ZEND_ACC_PRIVATE) {
|
||||
|
||||
@@ -2,7 +2,7 @@
|
||||
+----------------------------------------------------------------------+
|
||||
| Zend Engine |
|
||||
+----------------------------------------------------------------------+
|
||||
| Copyright (c) 1998-2008 Zend Technologies Ltd. (http://www.zend.com) |
|
||||
| Copyright (c) 1998-2009 Zend Technologies Ltd. (http://www.zend.com) |
|
||||
+----------------------------------------------------------------------+
|
||||
| This source file is subject to version 2.00 of the Zend license, |
|
||||
| that is bundled with this package in the file LICENSE, and is |
|
||||
|
||||
Loaded 100 of 3195 files, more files were not shown because too many files have changed in this diff.
Show more
Reference in new issue
Block a user