採択 2019/03/31 10:25〜 Track A レギュラートーク 15分

マニュアルにない引数を与えるとどうなる?php-srcへのバグ報告をした時の話 PHPerKaigi 2019

youkidearitai てきめん youkidearitai

とある日に、いつものようにPHP 5.6でmbstringの関数へ引数をarray()にして挙動を楽しんでいました。
同じように当時の PHP 7.3.0 RC5 に対して、挙動を楽しんでいると、
mb_check_encodingのときに、Segfaultになりました。

報告したところ、修正いただきました。

今回は、そのバグをどう見つけて、どう報告したのかということと、
php-src上での問題か、スクリプト上の問題かを切り分ける方法、

そもそもPHPのビルトイン関数へ(わざと|誤って|たまたま)マニュアルにない引数を加えるとどうなるのか、
7.2からmb_check_encodingとmb_convert_encodingにはarrayが使えるようになっていること

などの発見したこと、報告した後の心境を共有させていただきたいなと思います。