llSetText と Abyss の障害について

Re: llSetText と Abyss の障害について

- Xpyoda Janus の投稿
返信数: 0

デバッグご苦労様です。

これは、なかなかすぐ分るタイプのバグではなさそうで、よく発見されたと思います。(OpenSimのコードにはそのうちフィードバックされるのでしょうか?)

> 簡単にいうと,llSetText() に255文字以上のテキストを指定した場合,
> 254文字に切り詰める動作がいいかげんになっており,
> UTF-8の文字境界で正確に切り詰められない場合があります.

バイト単位でみてて、文字単位ではなく、ASCIIエンコードで254文字に詰めているってことですね、たぶん。

 

> そのため,文字データが崩れ,その不正データを受信したビューアがクラッシュしたものと思われます.

これ、Viwerに脆弱性が存在する可能性があるってことになりますよね。昔、Windowsで猛威をふるったNimdaウィルスも、UNICODE処理の不具合を利用して、外部から任意のコードを実行させることができましたし...。

 

> そんなに文字数の多いフロートテキストを使ってたのか・・・。

日本語だと、UTF-8 では1文字3バイト以上になるので、84文字以下しか書けないですね。