-
Notifications
You must be signed in to change notification settings - Fork 9
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
safer version of text2mecab #4
Conversation
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
VOICEVOXエンジン側で使っているopenjtalkの関数は、確保したメモリサイズ以上の領域に書き込む危険性があるので、その領域に書き込もうとした前にエラーを返すような関数を追加した、という文脈でしょうか。
なるほどです!!
text2mecab_s
を追加するのではなく、text2mecab
を書き換えてしまうという手もあるかもと感じました。
openjtalkに変更が加わえられたときに追従しやすいこと、たぶん安全じゃない関数の需要はないことが主な理由です。
まあその場合、text2mecab
が使われている箇所全部を変更する必要がありますが・・・。
どうでしょうか👀
あまりopen_jtalkに変更を加えたくなかったのですが、そちらでも全然ありだと思います |
ありがとうございます! |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
LGTM!!
これをENGINEに反映させるにはいろいろ更新が必要かもですね・・・ |
このPRの変更点はextract_fullcontextという関数に包まれているので、ENGINE における変更点はpyopenjtalk変更に伴うrequirements.txtの修正のみになりそうです。 |
追従TODO
|
cf. VOICEVOX/voicevox_engine#384 (comment)
CRT のセキュリティ機能 を参考に、
buffer overflowの危険性があるtext2mecabに対し、バッファーサイズを指定してそれをはみ出した場合エラーが返る
text2mecab_s
を実装した。以下のような関数呼び出しをこれに置き換え、よりメモリ安全にする。