今日はコンパイラ警告の除去、Exception::__clone と Reflection::__clone の復活、FFI のマージ、mb_scrub() が null 文字以降を勝手に切り詰める問題の修正、opcache のテスト修正、RecursiveFilterIterator を 2 つ RecursiveDirectoryIterator に追加すると SEGV が出る問題の修正、ASAN と ifunc をあわせて使う際クラッシュする問題へのワークアラウンド、php.ini のコメント修正、mysqlnd のメモリリークの修正があった!
2019-01-14
KalleZ: Kill this new and insanely annoying warning
- https://github.com/php/php-src/commit/1ff33f3161924c3454ea61694bf66d42232d492a
- Typed Properties マージで入ったコンパイラ警告の除去
- よくわからんのでキャストを入れたみたいな形
nikic: Change zend_try_array_init_size arg to uint32_t
- https://github.com/php/php-src/commit/e25e2bd9bd0b878caf5fe80f6b53c7d42657ebd1
- ↑のキャストを外して zend_try_array_init_size() の仮引数を size_t でなく uint32_t に
nikic: Revert removal of private __clone() methods
- https://github.com/php/php-src/commit/d0fd2be64234d978e62fb27d6012087514550e71
- 11 月に Exception と Reflection の __clone() を削除する修正をしたのをリバート
- Reflection でオブジェクトがなくクラスしかないケースで isCloneable の判定に使うため、消すと互換性崩れてアカンかったなあ、ということらしい
dstogov: Added FFI extension
- https://github.com/php/php-src/commit/e089d506d5c7716c62cee5232d32ab22d0ddde26
- FFI のマージ
- PHP 8 の目玉機能とされていたのはあと JIT と非同期かな
nikic: Fixed bug #77454
- https://github.com/php/php-src/commit/3ad0ebdf5cdc6dbe077685907d012eaeac7ea6e4
- [7.2~]
- ext/mbstring で、mb_scrub() が null 文字以降を勝手に切り詰める問題の修正
dstogov: Fixed 32/64-bit mismatch
- https://github.com/php/php-src/commit/2f89baf5c76a1fd172b16f3d905773875aaf6e11
- ext/opcache で、テストの期待出力が 32bit / 64bit で違っていた部分を吸収するよう修正
dstogov: Fixed bug #77263 (Segfault when using 2 RecursiveFilterIterator)
- https://github.com/php/php-src/commit/920450534ea7bc8852509d159d488a62f8032c80
- [7.3~]
- RecursiveFilterIterator を 2 つ RecursiveDirectoryIterator に追加すると SEGV が出る問題の修正
- ZEND_INIT_METHOD_CALL のオペコードハンドラの実装の問題だったみたいなので、他にも死んでたケースがありそう?
nikic: Fixed bug #77447
- https://github.com/php/php-src/commit/c8c5a3ab8afdaa4692784a54a678cc565ecd1834
- [7.3~]
- ASAN 付きでビルドすると zend_cpu_supports_avx2() 実行時にクラッシュする問題の修正
- ASAN と ifunc で互換性ないという問題が結構前からあるもよう
- 今回の修正では
__attribute__((no_sanitize_address))
で対処してるもよう
wbob: document open_basedir and realpath cache coupling in php.ini
- https://github.com/php/php-src/commit/5ac9990ddf0521b1c79b5e061a342a6dfb53d30c
- [7.2~]
- php.ini のコメントで、open_basedir の設定時 realpath cache が無効になるむね追記
dstogov: Fixed bug #77308 (Unbuffered queries memory leak)
- https://github.com/php/php-src/commit/1a306cc9a1679a758c859731a78429429830a439
- [7.3~]
- ext/mysqlnd で、
PDO::MYSQL_ATTR_USE_BUFFERED_QUERY
が false な unbuffered クエリでメモリリークする問題の修正