整数オーバフローとは?
整数オーバフローとは、演算結果が変数の表現範囲を超え、値が折り返して意図しない小さな値や負値になる欠陥。単独では誤動作にとどまるが、確保するメモリサイズや境界検査の計算に使われると、検査を通過した上で範囲外書き込みが起きる踏み台になる。
せいすうおーばふろー
整数オーバフローの意味
演算結果が変数の表現範囲を超え、値が折り返して意図しない小さな値や負値になる欠陥。単独では誤動作にとどまるが、確保するメモリサイズや境界検査の計算に使われると、検査を通過した上で範囲外書き込みが起きる踏み台になる。
整数オーバフローの具体例
受信データ長に付加分を足してから領域を確保する処理で、極端に大きな長さを送ると加算が折り返し、小さな領域が確保される。その後に本来の長さ分をコピーするため、確保量を超えた書き込みが発生してヒープが壊れる。「要素数×1要素の大きさ」で領域を確保する処理に巨大な要素数を与える手口も同型。
整数オーバフローは試験でどう引っ掛けられる?
符号付きと符号なしの混在が引き金になりやすく、負値を符号なしとして解釈した結果、長さ検査を通ってしまう例が典型。またコンパイラは符号付き演算の折り返しを未定義動作として最適化で消すことがあり、書いた検査コードが消える場合がある。「加算後に結果が小さくなったら異常」という事後判定ではなく、演算前に上限を検査する書き方が正解になる。
整数オーバフローと関連する用語
最終更新:2026-08-25/解説は資格暗記が独自に作成しています。 過去問の出典は各問題に記載のとおりです。