バッファオーバラン
入れ過ぎちゃったよ
あふれちゃったよ
簡単に書くよ
バッファオーバラン(英:buffer overrun)とは
「バッファオーバフロー」のこと。
用語の中身としては
「これくらい入るかな~」と思って確保していた領域よりもたくさん入れちゃって、入りきらなかった状態のこと
です。
詳しく書くよ
※個人的には「バッファオーバーラン」(「オーバ」ではなく「オーバー」)という言い方の方が馴染みがありますが、某・資格試験の過去問だと「バッファオーバーフロー」ではなく「バッファオーバフロー」のような形で出てくるのですね。そのため、用語検索で引っかかるようにするために取り上げておきます。
バッファオーバフローは「確保していた領域よりもたくさん入れて、あふれた状態」ね。
それを踏まえて
バッファオーバフローの別の呼び名
が「バッファオーバラン」です。
それでは細かい説明を書いていきますが、ここから先の内容は「バッファオーバフロー」の説明と同じです。
すでに「バッファオーバフロー」の説明をご覧になった人は、ここから先を読んでも意味はないと思います。
プログラミングでは変数を扱います。
変数は「データを入れておく箱」です。
中にデータ(値)を入れます。
この変数ですが、実際にはメモリ上に場所を確保します。
メモリの上に「ここからここまで、この変数が使うから」と値を入れておくための領域を確保するのです。
よく分からない方は花見の場所取りをイメージしてください。
場所を取るために下に敷いたブルーシートが変数です。
その上に座る上司や先輩、花見の参加者が値です。
花見の参加者が多くなると、ブルーシートに座りきれません。
ブルーシートの外にはみ出してしまうでしょう。
そうすると、隣で花見をしている人たちの迷惑になってしまうかもしれませんね。
コンピュータの世界も同じです。
例えば、3文字まで入る変数をメモリ上に確保したとしましょう。
そこに4文字以上入れると、入りきらない分があふれてしまいます。
もし隣の領域を他の変数が使っていたら、どうでしょう?
他の変数の値を書き換えてしまいますね。
これは本来想定していない事態です。
困ったことになる可能性が高いでしょう。
このような
元々確保していた領域よりも大きい値を入れて、あふれちゃった状態
がバッファオーバランです。
一言でまとめるよ
まぁ「バッファオーバラン」って単語が出てきたら「確保していた領域よりもたくさん入れて、あふれたんだな~」と お考えください。
おまけ
■訳してみるよ
「buffer(バッファ)」の意味は「緩衝器」とか「緩衝物」とか「緩衝装置」とか「緩衝材」とかです。
「overrun(オーバラン)」の意味は「超過する」とか「あふれる」とか「氾濫する」とかです。
何となく くっつけると
緩衝物からあふれる
となります。






