shiguredo / momo

WebRTC Native Client Momo
https://momo.shiguredo.jp/
Apache License 2.0
776 stars 170 forks source link

ローカルネット上のAyameを使用して接続した場合にSEGVが発生する #100

Closed roy-n-roy closed 5 years ago

roy-n-roy commented 5 years ago

バグを説明してください

Momoを起動して、ローカルホスト上のAyameに接続し、 registerメッセージを送信後に受信したacceptメッセージ内に、 IceServersが含まれていない場合、SEGVが発生する。

再現する

再現時コマンド ./momo --no-audio --video-device /dev/video0 --force-i420 --resolution FHD --fixed-resolution --log-level 0 ayame ws://localhost:3000/signaling test >& momo_log.txt

予想される行動

プロセスが終了しない。 AyameからIceServersが返答されない場合、 "stun:stun.l.google.com:19302"を使用して処理が継続される。

カメラ/マイク

カメラ: auvidea B101 HDMI to CSI-2 Bridge (15 pin FPC) マイク: なし

lsusb のコマンド結果を貼ってください。 pi@raspberrypi:~ $ lsusb Bus 003 Device 001: ID 1d6b:0002 Linux Foundation 2.0 root hub Bus 002 Device 001: ID 1d6b:0003 Linux Foundation 3.0 root hub Bus 001 Device 002: ID 2109:3431 VIA Labs, Inc. Hub Bus 001 Device 001: ID 1d6b:0002 Linux Foundation 2.0 root hub

自前バイナリ/提供バイナリ

提供バイナリ momo-19.09.0_raspbian-buster_armv7.tar.gz に含まれる momo

--log-level 1 の出力ログ

momo-log-level-1.txt

追加の情報

coredumpファイルも添付いたします。 core.zip

自前ビルドcommit 7ce0bc7894ad5df2a0b8876d73f4f8f331e38ff4でもデバッグ実行したところ、再現しました。

IceServersが含まれていない場合は src/ayame/ayame_websocket_client.cpp:307 に 落ちることが想定されていると思われますが、 想定しているjson::type_errorが発生せず、ice_servers_が設定されないため、 src/rtc/connection.cpp:18 でSEGVが発生しているようです。

voluntas commented 5 years ago

@roy-n-roy 丁寧な報告ありがとうございます!!!

e2ae19717a05112c4d4de8a9687965a4f3e06146 こちらで修正しました。

19.09.2 はもう少ししたらリリースしますのでお待ち下さい。

voluntas commented 5 years ago

@roy-n-roy 上記バグを修正した 19.09.2 をリリースしました。ご確認、お願いします。

https://github.com/shiguredo/momo/releases/tag/19.09.2

roy-n-roy commented 5 years ago

@voluntas 正常動作を確認出来ました。ありがとうございます。