記事内容がつらいと他の方のblogでもとりあげられているZDnetの記事を読んでみました。
そのなかでもscanfを取り上げた記事にちょっと興味を持ちました。
scanfでバッファオーバーフローの危険性があるのは、むかーしC言語をならったときにはあまりきちんと取り上げられていなかったような気がします。
しかし、現在においてはプログラミングを始めたばかりの人がバッファオーバーフローを理解するのに手軽な教材になりえますから、scanfを取り上げて脆弱性まで言及するのが良いでしょう。
前述の記事にはそのあたりが見当たりませんので、その説明がされている別筆者の方のページを紹介します。
http://homepage3.nifty.com/mmgames/c_guide/14-03.html#S5
同じ筆者の方の次のページも参考になるでしょう。
http://homepage3.nifty.com/mmgames/c_guide/06-02.html#S4
[追記]
ただし、この別著者のページも正しい回避策にはなっていません。正しくは次のようにバッファサイズ-1の大きさに書式指定します。
#include
int main(void)
{
char str[33];
scanf("%32s",str);
printf("%s\n",str);
return 0;
}