Closed qryxip closed 5 months ago
Rust 1.79に上げるとC APIのテストがSEGV(多分)することがわかりました。 https://github.com/VOICEVOX/voicevox_core/actions/runs/9505427859?pr=799
原因はvoicevox_user_dict_add_wordの実装です。起こっていることはおそらくこんな感じです。 https://play.rust-lang.org/?version=stable&mode=debug&edition=2021&gist=3d7d63d7dd6216fbb5172391013be984
voicevox_user_dict_add_word
voicevox_user_dict_add_wordは現在output_wordに書き込む方法を誤っており、16バイトではなく16×16=256バイトをmemmoveしてスタックを破壊しています。書き込む方法を正しくすることで修正を行います。
output_word
memmove
内容
Rust 1.79に上げるとC APIのテストがSEGV(多分)することがわかりました。 https://github.com/VOICEVOX/voicevox_core/actions/runs/9505427859?pr=799
原因は
voicevox_user_dict_add_word
の実装です。起こっていることはおそらくこんな感じです。 https://play.rust-lang.org/?version=stable&mode=debug&edition=2021&gist=3d7d63d7dd6216fbb5172391013be984voicevox_user_dict_add_word
は現在output_word
に書き込む方法を誤っており、16バイトではなく16×16=256バイトをmemmove
してスタックを破壊しています。書き込む方法を正しくすることで修正を行います。関連 Issue
その他