タグ

関連タグで絞り込む (0)

  • 関連タグはありません

タグの絞り込みを解除

cに関するnagachikaのブックマーク (1)

  • 情報セキュリティ技術動向調査(2008 年上期):IPA 独立行政法人 情報処理推進機構

    このコードの意図は、「buf + len < buf の検査により、buf + len が大きすぎてアドレス空間の終端を越えてしまうならば、アドレス空間の終端を越えないようにlen を小さくする」というものである。 JVNVU#162289 は、直接的には、このbuf + len < buf の検査がC コンパイラの最適化によって常に偽になると判断される可能性があることを指摘している。その理由は、このbuf + len の足し算がオーバーフローしたとき、オーバーフローしたキャリービットを除いた値が結果として得られるという保証がないためである。 この「保証がない」というのはC の規格がその保証を要求していないためであり、C コンパイラは、そのような場合にどのような振舞をするかを自由に選べる。最適化は一般に高速なオブジェクトコードを目指すわけであるから、if 文自体を削除してもC の規格には反

    nagachika
    nagachika 2011/05/30
  • 1