今日はオブジェクトプロパティ書き込みハンドラの修正、opcache の SCCP 最適化周りの (SEGV が出る問題含む)修正、parse_str() で既存の配列へ要素を代入する際に SEGV が出る問題の修正、PDORow のコード整理とプロパティ読み出し時の挙動変更、imagescale() が失敗時に空の画像リソースを返す問題の修正、password_hash() と password_needs_rehash() の引数処理から不要な参照対応を外す修正があった!
2019-01-10
nikic: Require that write_property value is not a reference
- https://github.com/php/php-src/commit/d6e32c6ba7cd6b608e32c5ddb078e688b7031547
- オブジェクトプロパティへの書き込みハンドラでの不要な参照チェックの削除
- 呼び出し前にデリファレンスしてるので不要というやつ
laruence: Incase of invalid read
- https://github.com/php/php-src/commit/16176ad0e30ce1407c2ce546094bec5821af8c3c
- [7.3~]
- ext/opcache で、1/8 の修正箇所についてループカウンタのインクリメントを後置から前置へ
- new する際のコンストラクタ呼び出し命令の位置をとる処理なのは追った
- 見つからなくてケツまで読む時に読みすぎてたのかな
nikic: Fixed bug #77434
- https://github.com/php/php-src/commit/ade702a0d299f0c8967720fb4887cd1447419cd9
- [7.3~]
- ext/opcache で、一部がリテラルであるような配列の操作で SEGV が出る問題の修正、かな
- これも SCCP 周りのバグ
nikic: Fixed bug #77439
- https://github.com/php/php-src/commit/5d33024a5dc40a45c986deb37282e54e80058b6f
- [7.2~]
- parse_str() で、既存の配列へ要素を代入する際に SEGV が出る問題の修正
nikic: Manually initialize PDORow handlers
- https://github.com/php/php-src/commit/32de3469d9eeebfaec8706865f10401656d60dba
- ext/pdo で、PDORow のオブジェクトハンドラを初期化する際にメンバを明示的に指定して代入するよう修正
- 何に何入れてるのか分かるように、ということみたい
- C99 だと指示初期化子とか使える系だけれども、あれも C++ 的にこう……
nikic: Use serialize_deny handler in PDORow
- https://github.com/php/php-src/commit/5f7b934f8b80af499f459dbcb6fae76eab9a136d
- ext/pdo で、独自定義のハンドラのかわりに serialize_deny でシリアライズを禁止するよう修正
nikic: Return only debug props in PDORow
- https://github.com/php/php-src/commit/a0d0cb847fb623f1f64abe7ff42f5a6e6c4bfb8c
- ext/pdo で、PDORow のプロパティ読み出しが PDOStatement のプロパティを返したりしていたのを var_dump() などデバッグダンプ用関数のみで返すよう修正、かな?
- あんま読めてないけど実際そうならその挙動に依存してて困る人もいそうな
cmb69: Fix #77272: imagescale() may return image resource on failure
- https://github.com/php/php-src/commit/772b1cb245ebe19e220a2552d1e2b700d15f2c68
- [7.2~]
- imagescale() が失敗時に空の画像リソースを返す問題の修正
- バンドル版の libgd 利用で起きる
nikic: Remove unnecessary Z_PARAM_ZVAL_DEREFs
- https://github.com/php/php-src/commit/e88a08164198c11612f7764c70e3ec5bda7ab67e
- 無駄に Z_PARAM_ZVAL_DEREF だったのを Z_PARAM_ZVAL へ修正
- 参照じゃ、ないでしょ、みたいな