今日は php-fpm の systemd デフォルト設定の変更、imagecropauto() の $mode のデフォルト値の扱い修正、unserialize() のリファクタリング、Password Hashing Registry まわりのメモリリークの修正があった!
2018-12-13
candrews: Implement FR #72510: systemd service should be hardened
- https://github.com/php/php-src/commit/40c4d7f1820df1872a71ab07fd26da45a203e37f
- sapi/fpm の systemd のデフォルト設定をセキュアなものに変更
- 以下に変更される
- ProtectHome=true
- PrivateTmp=true
- ProtectSystem=full
- NoNewPrivileges=true
- PrivateDevices=true
- CapabilityBoundingSet=CAP_SETGID CAP_SETUID
- /tmp がサービス毎独立したものになるので、他プログラムや SAPI での実行と /tmp 共用するのが前提の場合に「アぁん?」となりそう、CLI 実行で xhprof 形式のプロファイルデータを /tmp 下に吐いて Web のビューアで見ようとしたら見えねえ!とか(一部ディストリビューションでは今でもほっとくと起きてる奴かも?)
cmb69: Resolve imagecropauto() default $mode quirk
- https://github.com/php/php-src/commit/8c781c1c203f1e4b30aef2446a0ece7ebba6c76b
- ext/gd で、imagecropauto() のデフォルトの $mode を GD_CROP_DEFAULT とし、直接 -1 を渡すのを deprecated に
dstogov: Improve unserialize()
- https://github.com/php/php-src/commit/71f430cf067aa7c7ecc4a813df7d6cad19bf8148
- unserialize() のリファクタリング
- Serializable を実装してる奴を含むオブジェクト等によって再帰的にシリアライズ / アンシリアライズの処理が呼ばれる際、BG(serialize).level や BG(unserialize).level を調整しながら処理するような構造になってる
- #36424 やその際の修正コミットを参照
- BG(unserialize).level が 1 以下の場合の処理を単純化してるような感じかな?
dstogov: Improve unserialize()
- https://github.com/php/php-src/commit/db30e0ce1653cfdadf1a7e15dea20d2ffc38c556
- unserialize() のリファクタリング
- データ構造のメモリレイアウト変えて最適化みたいな感じか?という気がするけどあまり見れてない