C言語 Advent Calendar 2016 16日目です。 clang 3.1, gcc 4.9以降にメモリ関連の不正な操作を検出するAddressSanitizerという仕組みが入りました。 二重freeやバッファオーバーフローなどCプログラミングにありがちなメモリ操作を検出できるので、ソフトウェアの品質向上だけでなく、セキュリティ対策としても有用です。 以下に思いつく限りのメモリの不正操作を実際に試してみました。 (1) スタックオーバーフロー(1.1) 正方向の書き込み [stack_overwrite.c] (https://github.com/hamano/santest/blob/master/tests/stack_overwrite.c)(1.2) 正方向の参照 [stack_overread.c] (https://github.com/hamano/santes
![AddressSanitizerを試す - cuspy diary](https://cdn-ak-scissors.b.st-hatena.com/image/square/a3613f15ac9e197a33446a5f9aa29e7028988329/height=288;version=1;width=512/https%3A%2F%2Fwww.cuspy.org%2Fdiary%2F2016-12-16-clang-address-sanitizer%2Fimages%2Fdram.jpg)