バッファ・オーバーフローの恐怖

久しぶりにやっちまった…orz

近日中に予稿を完成させないとマズいので,それなりに焦って(注:あくまでも「それなり」ね.まだ日数あるし)やってた.で,今日までは「根本的に何か変でしょ,これ?」ってレベルのダメダメ結果しか無かったのだが,今日になってバグが取れたっつーか,最初から処理し直したら,なぜかそれだけで悪いなりにも納得できるレベルのデータが得られた.(つまり,バグだったのかどうかは謎のままだが,そこは気にしないことにする)

ということで,そのデータを食わせる次の処理のプログラム(過去2年くらい使ってるが,今まで何も問題なかった)を試してみたところ,いきなり信じられない処理結果が吐かれやがった.前述のように「悪いなりに納得できる」データであって,良いデータというわけではないから,そこが原因かとも思うが,そういうレベルの結果ではない.明らかにおかしい.

…で,また最初から処理をやり直したり,いろいろ試行錯誤して結局1時間くらい費やしたのだが,しまいにゃ NaN とか出てきやがった.で,その NaN の登場で嫌な予感がして,その過去2年間いじってないプログラムのソースを見た.あり?なんかデータ読むところで配列が char hoge[16] みたいなことになっとるぞ.………あ,そういえば食わせるデータを以前は %.4fとかやってたのに,ここ最近で %.10e に変えたような気がしなくもないような…

バッファ・オーバーフローって永遠の課題というか,ホント忘れた頃にやってくる罠だ.