アカウント名:
パスワード:
「スタックは上のアドレスから使われる」のが諸悪の根源。下から使ってりゃオーバーフローしても被害はその関数の自動変数で収まる。
より多くのコメントがこの議論にあるかもしれませんが、JavaScriptが有効ではない環境を使用している場合、クラシックなコメントシステム(D1)に設定を変更する必要があります。
私は悩みをリストアップし始めたが、そのあまりの長さにいやけがさし、何も考えないことにした。-- Robert C. Pike
分岐とデータのスタックを分離していないこと (スコア:1, 興味深い)
auto変数の配列を(リターンアドレス等に使う)メインのスタックではなく、別のスタックに置けば
かなりの改善を得られると思うんです。
別のスタックに対する操作はコンパイラが生成したコードでやるわけですから透過的に行えるし、
そのオーバーヘッドは、いちいちヒープを使うよりも遥かに少なくそしてメモリリークのバグをやらかしにくい。
まぁリターンアドレスを細工されることは防げても、他のデータにはみ出して上書きして特権的なフラグを操作する・・・なんてことには対処できませんが。
Re: (スコア:2, すばらしい洞察)
「スタックは上のアドレスから使われる」のが諸悪の根源。
下から使ってりゃオーバーフローしても被害はその関数の自動変数で収まる。
Re:分岐とデータのスタックを分離していないこと (スコア:0)