http://www.linux.or.jp/JM/html/LDP_man-pages/man3/gets.3.html

バグ
gets() は絶対に使用してはならない。
前もってデータを知ることなしに gets() が何文字読むかを知ることはできず、
gets() がバッファの終わりを越えて書き込み続けるため、
gets() を使うのは極めて危険である。
これを利用してコンピュータのセキュリティが破られてきた。
代わりに fgets() を使うこと。