php-master-changes 2019-06-21

今日は Mac 向けの実装修正、JIT / opcache の実装修正、gd での TGA 形式の読み込みサポートの追加、VM コードのリファクタリング、メモリ/リソースリークの修正、mysqlnd のコードでの明示的なキャスト追加、gd でフォントキャッシュの tsrm mutex を MSHUTDOWN で解放するようにする修正があった！

# 2019-06-21
## nikic: Handle gr_mem misalignment on macos
- https://github.com/php/php-src/commit/d80f0ff6c0a557d8c993a9d2bd006fb488f6d564
- [7.4~]
- gr_mem のエントリが Mac ではアラインされてないかもしれないとのことで一旦ローカル変数へコピーする修正

## nikic: Handle misaligned ifreq on macos
- https://github.com/php/php-src/commit/dd6d47183432df70d48a47d456ecde318174770d
- [7.4~]
- ext/sockets で、ifreq が Mac ではアラインされてないかもしれないとのことで一旦ローカル変数へコピーする修正

## nikic: Remove leftover check
- https://github.com/php/php-src/commit/59974000eb1fac8973600893df0534610f62ebbb
- [7.4~]
- Mac 用の修正により不要となったチェックコードの削除

## nikic: Avoid shift ub for regsets
- https://github.com/php/php-src/commit/42f3ed480d3bb7a2c15d7a538c27cce68aafbcbf
- ext/opcache/jit で、ZEND_REGSET の鼻から悪魔ならシフト演算を修正

## cmb69: Fix [#78189](https://bugs.php.net/bug.php?id=78189): file cache strips last character of uname hash
- https://github.com/php/php-src/commit/fcd6f2de60e1fc593fa301f3af42b871624946d9
- [7.2~]
- ext/opcache で、Windows 版でのファイルキャッシュのファイル名決定の実装でユーザネームからのハッシュ値を 1 バイト分無駄に捨ててしまっていた問題の修正

## cmb69: Support TGA reading
- https://github.com/php/php-src/commit/81fd113506e4c5833e64998651f232734ebb2cb7
- [7.4~]
- ext/gd で、TGA 形式の読み込みサポートの追加

## dstogov: Additional fix for bug [#78185](https://bugs.php.net/bug.php?id=78185) (File cache no longer works)
- https://github.com/php/php-src/commit/1707f6645a2f80fd529c9f987317b73ae94dba93
- ext/opcache で、ファイルキャッシュが正常動作しなくなっていた問題の修正

## nikic: Dasm: Perform unaligned stores through unaligned pointers
- https://github.com/php/php-src/commit/291eb19419200db2b565bf3c7c36e52ba4b65111
- ext/opcache/jit で、DASM_ALIGNED_WRITES なしでの dasmw() / dasmd() に 1 バイトアライン指定のポインタ型を使うよう修正

## nikic: Avoid ub in shift overflow check
- https://github.com/php/php-src/commit/8227e0f747d3e585d328a8316345d2b36177b7e0
- [7.4~]
- ext/opcache で、シフト時のオーバーフローチェックでの鼻から悪魔を修正

## nikic: Make ZEND_SEND_* flags unsigned
- https://github.com/php/php-src/commit/a84771573dd79988f247272b025e00c1daa4bba9
- [7.4~]
- ZEND_SEND_* のフラグを符号なし整数に修正

## nikic: Don't try to exclude zreg_none
- https://github.com/php/php-src/commit/7a1ca07a608d7b147010668abf729c4967021596
- ext/opcache/jit で、レジスタ割当処理の修正
- ZREG_NONE は -1 で ZEND_REGSET_EXCL() はビットマップから指定ビットを抜くような処理に見えるが、正直よく分からず！

## dstogov: Cleanup
- https://github.com/php/php-src/commit/e1e8e670df7784bd873c09a55bf08cd7465704c5
- [7.4~]
- VM コードのリファクタリング

## kelunik: Fix memory leak in TLS matches_san_list
- https://github.com/php/php-src/commit/fea9f93166a31760679101269aee2326ee8185e9
- [7.2~]
- ext/openssl で、matches_san_list のメモリリークを修正

## nikic: Fix leak in bcpowmod
- https://github.com/php/php-src/commit/f781c8f1100ebefec800889171f4c8d0cf3c6637
- [7.4~]
- ext/bcmath で、[bcpowmod()](https://www.php.net/manual/ja/function.bcpowmod.php) でのメモリリークの修正

## nikic: Fix memory leaks in browscap parsing
- https://github.com/php/php-src/commit/1de7c4b91941347d1a5fc4a9d2990601b6d33fe7
- [7.4~]
- browscap のパース処理でのメモリリークの修正、微妙に処理も効率化

## nikic: Free cert in php_openssl_load_stream_cafile()
- https://github.com/php/php-src/commit/90cb3743be293aab801a78196ad038c039786c19
- [7.2~]
- ext/openssl で、X509_free() が足りずメモリ/リソースリークしていた問題の修正

## nikic: Fix CSR leaks in openssl
- https://github.com/php/php-src/commit/e0bafc6da440f5b028453ca19d012d6a02234fc8
- [7.2~]
- ext/openssl で、[openssl_csr_get_subject()](https://www.php.net/manual/ja/function.openssl-csr-get-subject.php)、[openssl_csr_get_public_key()](https://www.php.net/manual/ja/function.openssl-csr-get-public-key.php) でのメモリ/リソースリークの修正

## nikic: Fix X509 leak in openssl_pkcs7_verify()
- https://github.com/php/php-src/commit/a0da2fb2b78b4783666be2c82d5eda23f9f65552
- [7.2~]
- ext/openssl で、[openssl_pkcs7_verify()](https://www.php.net/manual/ja/function.openssl-pkcs7-verify.php) でのメモリ/リソースリークの修正

## nikic: Fix netscape spki leak in openssl
- https://github.com/php/php-src/commit/dfe6f0c1c6838d1fd9e6be49fd6896d421b4dac8
- [7.2~]
- ext/openssl で、[openssl_spki_export_challenge()](https://www.php.net/manual/en/function.openssl-spki-export-challenge.php) でのメモリ/リソースリークの修正

## nikic: Fix d leak in ecc openssl_pkey_new
- https://github.com/php/php-src/commit/c939a67866536247325b204929d8b9cac021c71e
- [7.2~]
- ext/openssl で、[openssl_pkey_new()](https://php.net/manual/ja/function.openssl-pkey-new.php) でのメモリ/リソースリークの修正

## nikic: Fix PKCS12 leak in openssl
- https://github.com/php/php-src/commit/99f3e0f0ed6668097bf4fb2820f3e97db1197869
- [7.2~]
- ext/openssl で、[openssl_pkcs12_read()](https://www.php.net/manual/ja/function.openssl-pkcs12-read.php) でのメモリ/リソースリークの修正

## Andrey Hristov: Add explicit cast to uint32_t.
- https://github.com/php/php-src/commit/102c64e8274e072426c95f8805dd727e87c5f69d
- [7.2~]
- ext/mysqlnd で、キャストの追加
- 「動いてたから元々コンパイラが暗黙にキャストしてくれてたんだと思う！たぶん！」みたいなこと言ってる

## cmb69: Properly shut down font cache mutex
- https://github.com/php/php-src/commit/eec5d2a25f75c3cacd07f8cb0f88ce3343641528
- [7.4~]
- ext/gd で、フォントキャッシュの tsrm mutex を MSHUTDOWN で解放するよう修正