php-master-changes 2019-06-20

今日は未定義挙動コードの修正、不要コードの削除、opcache でファイルキャッシュが動作しなくなっていた問題の修正、コンパイラの警告潰し、テストの修正、 gethostbyname() の Mac 向けの実装修正、ビルドシステムで dlsym() をチェックするようにする修正があった！

# 2019-06-20
## nikic: Suppress shift UB in gd_itofx()
- https://github.com/php/php-src/commit/9b3b07cd26b85ff0f9c0872ef1271dfc76a2efff
- [7.4~]
- ext/gd で、鼻から悪魔の修正

## nikic: Remove copy argument from php_glob_stream_get_path/pattern
- https://github.com/php/php-src/commit/7cbd4f31c413919d0c985f6de170b89d7bfdbf75
- [7.4~]
- php_glob_stream_get_path()、php_glob_stream_get_pattern() の使われていない引数を削除

## nikic: Fix various instances of memcpy null ub
- https://github.com/php/php-src/commit/608097a901fb28d3b1ed0ff4ea2bb76ae9bb1272
- [7.4~]
- 鼻から悪魔の修正

## nikic: Avoid signed shift ub in php_sdl
- https://github.com/php/php-src/commit/8743d5e99acd59504bdf34e65d2ba25f20d76970
- [7.4~]
- 鼻から悪魔の修正

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

## nikic: Avoid memset/memcpy null ub in block pass
- https://github.com/php/php-src/commit/ccfe6c862a9ad27d641dc6d5cd8386fe2b912acc
- [7.4~]
- ext/opcache で、鼻から悪魔の修正

## nikic: Backport "Avoid UB in overflow checks"
- https://github.com/php/php-src/commit/3a97b8b4f9f8ab20e9e62b9f63f95d167e308c20
- [7.4~]
- [前日の鼻から悪魔の修正](https://qiita.com/sj-i/items/5406b989204eb3a76107#nikic-avoid-ub-in-overflow-checks)を JIT 部分だけ抜いてバックポート

## nikic: Avoid overflow in mul range calculation
- https://github.com/php/php-src/commit/117c7b3f65c6e884f14e1e71cda340a3becbed48
- [7.4~]
- ext/opcache で、ZEND_MUL の型推論処理でのオーバーフローチェックの修正

## nikic: imagecolorallocate(): Check that RGB components are in-range
- https://github.com/php/php-src/commit/4488475a3e3b978f7acab11d1550854ba9b988ee
- [7.4~]
- ext/gd で、RGB の値が範囲内かのチェック処理を追加

## remicollet: add test for [#78185](https://bugs.php.net/bug.php?id=78185)
- https://github.com/php/php-src/commit/63f2d880888aae381631f126b3ed029b3468f903
- [7.2~]
- ext/opcache で、ファイルキャッシュ機能が動作することのテストを追加

## nikic: Fix maybe uninit warning
- https://github.com/php/php-src/commit/e162a1c02e2e233b6b1a23bb651a0fb6d344a474
- [7.4~]
- 未初期化変数アクセスのコンパイラ警告潰し

## remicollet: move NEWS entry
- https://github.com/php/php-src/commit/c2ee2e4c74410af69ef8d176c664983471d98794
- [7.2~]
- NEWS で、opcache のファイルキャッシュが動かなかった問題の修正について 7.2.21 から 7.2.20 の方へ移動

## remicollet: improve test clean section
- https://github.com/php/php-src/commit/b3cfeda3c783d681452bfa80543c469dee92a5f8
- [7.2~]
- ext/opcache で、ファイルキャッシュ機能が動作することのテストで掃除処理の改善

## remicollet: fix test for Windows and for parallel run
- https://github.com/php/php-src/commit/d8202bf9177cdbcb9b87586580dbcd6bb94f0de4
- [7.2~]
- ext/opcache で、ファイルキャッシュ機能が動作することのテストの Windows 対応と並列実行対応

## nikic: Change indexing scheme for symtable_cache
- https://github.com/php/php-src/commit/eaafb69eea9dba06ee542383a746d3668fa072cf
- [7.4~]
- symtable_cache のインデックス方法の変更
- symtable_cache_ptr は最終使用要素でなく最初の未使用要素を指すようになる
- 配列の負値インデックス（鼻から悪魔）を避けるための修正

## nikic: Disable float division by zero sanitizer for div_function
- https://github.com/php/php-src/commit/a59e0cfce528669642f8199410b267146a30b714
- [7.4~]
- div_function() に `__attribute__((no_sanitize("float-divide-by-zero")))` を付けた

## nikic: Bail out earlier in zend_memnrstr
- https://github.com/php/php-src/commit/e4455c32ed76b74197f1a2647c163d0d470df9fe
- [7.4~]
- zend_memnrstr() の実装修正、ぬるぽをデクリメントする（鼻から悪魔）ことになるので、という話

## nikic: Avoid address calculation overflow
- https://github.com/php/php-src/commit/e8ae19223c998fdfe790d368775c5f271e5bdbd9
- [7.4~]
- [strripos()](https://www.php.net/manual/ja/function.strripos.php) の実装で、アドレス計算がオーバーフローする場合があった問題の修正

## nikic: In php_needle_char() use well-defined double->integer cast
- https://github.com/php/php-src/commit/d4de127dd8db255576ad8c8eeec27e8aef4132e5
- [7.4~]
- 鼻から悪魔の修正

## nikic: FFI: Use signed arithmetic for pointer offset
- https://github.com/php/php-src/commit/f127d77eefad4b641b2befcbab13f16a624e7424
- [7.4~]
- ext/ffi で、ポインタ計算に ptrdiff_t を使うよう修正
- [ubsan](https://clang.llvm.org/docs/UndefinedBehaviorSanitizer.html) でこのたびの鼻悪魔の大虐殺が行われているもよう

## nikic: SOAP: Avoid indexing into null pointer
- https://github.com/php/php-src/commit/27d3373496ec5b2e45bd7403ccde1ab891efe00b
- [7.4~]
- ext/soap で、ぬるぽの修正

## nikic: Handle gethostbyname misalignment on macos
- https://github.com/php/php-src/commit/26ac6cb6be807d9e654b4a0c9b970908e210f269
- [7.4~]
- gethostbyname() の実装で、Mac では h_addr_list がアラインされてないのに対応

## nikic: Check for dlsym as well
- https://github.com/php/php-src/commit/6165c23475d5020cda3794cb684693a7fab9918d
- [7.4~]
- ビルドシステムで、dlsym() をチェックするよう修正

## cmb69: Rename test file to reflect the appropriate ticket number
- https://github.com/php/php-src/commit/ecae9100dcb5775c444c9755445a94691aea119d
- [7.4~]
- ext/opcache で、テストファイルのチケット番号が間違っていた問題の修正

## cmb69: Update NEWS
- https://github.com/php/php-src/commit/a0f370e78a3161a735869131b234c539aa712d31
- [7.3~]
- NEWS で、opcache のファイルキャッシュが動かなかった問題の修正について 7.3.8 から 7.3.7 の方へ移動