連載
» 2008年03月21日 10時00分 UPDATE

5分で絶対に分かる:5分で絶対に分かるバッファオーバーフロー (3/6)

[石山智祥,@IT]

なんでバッファがオーバーフローするの?

 それでは、メモリ上に確保したバッファ領域のオーバーフローについて見ていきましょう。

 メモリは無限に存在するわけではないため、メモリ上に確保されるバッファ領域の大きさにも上限があります。バッファ領域の上限はプログラムが規定していますが、プログラムを実行するCPUはバッファ領域の上限を知りません。CPUはプログラムに従って命令を実行するだけです。

 情報をバッファ領域に格納する際、格納する情報の大きさがバッファ領域の上限より小さい場合は問題ありませんが、バッファ領域の上限を超えてしまう場合、CPUはバッファ領域を超えて情報を格納してしまい、バッファがオーバーフローしてしまいます。

 バッファオーバーフローが起こってしまうと、メモリ上の不正な場所に情報を格納することになってしまいます。これにより、プログラムが誤動作することになってしまいます。

 つまり、バッファオーバーフローはプログラムの不具合の原因になるということです。

Copyright© 2016 ITmedia, Inc. All Rights Reserved.

@IT Special

- PR -

TechTargetジャパン

この記事に関連するホワイトペーパー

編集部からのお知らせ

@IT編集部では、編集記者を募集しています。ご興味のある方は奮ってご応募ください。

RSSについて

アイティメディアIDについて

メールマガジン登録

@ITのメールマガジンは、 もちろん、すべて無料です。ぜひメールマガジンをご購読ください。