[過去ログ] 5ch ブラウザ JD 21 (1002レス)
前次1-
抽出解除 レス栞

このスレッドは過去ログ倉庫に格納されています。
次スレ検索 歴削→次スレ 栞削→次スレ 過去ログメニュー
リロード規制です。10分ほどで解除するので、他のブラウザへ避難してください。
936
(2): 2019/03/05(火)09:34 ID:+7uvSwcf(1) AAS
外部リンク:github.com
どうもバッファサイズ説に納得がいく説明が付けられないから調査してみたんだどやっぱり違う気がする

根本原因はRegex::exec内とか(影響を調べてないけど他の箇所でも)で
malloc( MAX_TARGET_SIZE ) ;
としてMAX_TARGET_SIZE"バイト"のcharとintを確保してるんだけど
それを受け取ったMisc::asc側ではMAX_TARGET_SIZEの"要素数"の配列として扱ってしまっているのが原因っぽい

結果もちろんサイズは環境依存だけどcharの方は1バイトなんで問題は起きず
intの方は4バイトなのでMAX_TARGET_SIZE/4=8092回めのループを過ぎたところでオーバーフローでメモリ破壊が起きる

実際
MAX_TARGET_SIZE = 16 * 1024,
省3
939: 2019/03/05(火)13:01 ID:rCsYYpao(1/3) AAS
>>936
ああmallocの使い方を間違えてたのか…ありがとう納得しました
malloc/freeのままだと固定長の問題や保守的にも辛いのでstdライブラリに取り替えます
991
(2): 936 2019/03/06(水)19:40 ID:n/VT2KNT(1/2) AAS
>>936って作業してる人いたりしますか?
もしいなかったらいくつか他にもやりたいことが出てきたのでこちらでやらしてもらってPR送らしてもらっていいでしょうか
(長期的にはmallocを無くしていく方向?だと思うけど今回はあくまでmallocの引数の修正だけで…)
前次1-
スレ情報 赤レス抽出 画像レス抽出 歴の未読スレ AAサムネイル

ぬこの手 ぬこTOP 0.042s