gccの-Wextraは親切。

gccの警告オプション-Wallはいつも付けているのですが、-Wオプションは恐くて付けていなかった。gcc4では、-Wの代わりに-Wextraを付ける。Makefileに追加してみる。

CFLAGS=-Wall -Wextra

makeすると・・・

request.c|223| warning: unused parameter ‘info’
request.c|257| warning: comparison between signed and unsigned
  • 引数infoを使ってない。
  • signedのunsigned比較をしている。

signedのunsignedの比較はとんでもないバグを引き起こす可能性がある。

  • Wextraを付けてバグを未然に防いでおいた方がいいかもしれません。

参考

  • Binary Hacks 4章 セキュアプログラミングHack:INT_MIN / -1の除算とか為になる話題たっぷり。4章必見。