Firefox 58 が特定の SDP で落ちる。

この問題は Firefox Nightly で修正されています。

Firefox 58 の WebRTC を利用する際、SDP の a=mid の値が 16 文字より大きいと Firefox が落ちます。

結論としては RTP 拡張に対応するため、 mid の長さを 16 文字までに制限したが、実装が甘くて 16 文字より大きい mid が送られてくると落ちるというものでした。

a=mid の値の長さは RFC では 1 文字以上という事以外は決められていません。RTP 拡張の値は最大の値が 16 か 255 の二種類がありますが、 WebRTC は値の最大値が 16 のタイプしか対応していません。

つまり RTP 拡張に mid を入れるためには mid が 16 文字以下である必要があります。この辺りの変更を入れているタイミングでバグを埋め込んだ模様です。

このようなブラウザ側の問題を解明しやすくなるので RFC はよく読んでおきましょう。

ちなみに自社製品では mid をわかりやすくするため、 16 文字より大きい値をりようしており、このバグを見事に踏みました。すでに修正し対応済みです。

Written by

Erlang/OTP / 時雨堂 / WebRTC / E2EE

Get the Medium app

A button that says 'Download on the App Store', and if clicked it will lead you to the iOS App store
A button that says 'Get it on, Google Play', and if clicked it will lead you to the Google Play store