https://marc.info/?l=openbsd-tech&m=152035796722258&w=2
OpenBSDはスタックレジスタチェックを導入
「カーネルによって機会主義的に施行される」->選択肢という意味ですか?
システムコールが発生すると、スタックポインタレジスタがそのページを指していることを確認します。そうしないと、プログラムは終了します。- プログラマーでない人にスタックレジスタについてもっと詳しく説明できる人はいますか?オプションであれば、なぜそれがないすべてのプログラムを終了するのですか?
ベストアンサー1
スタックポインタレジスタはハードウェアレジスタです。スタックに使用される領域のメモリ位置*を指します。スタックポインタレジスタは、通常、メモリアクセスの前後でポインタ値を増加または減少させてスタックのデータアドレスを指定するために使用される。このチェックはシステムコールが発生したときに実行され、レジスタが有効なスタックアドレスを指しているかどうかを確認します。 「機会主義」は「選択的」を意味しません。
[*]: 一部のアーキテクチャでは、有効なアドレスがスタックページの最後のアドレスの後のアドレスである場合があります。