OSDN Git Service

rtmp: fix multiple broken overflow checks
authorXi Wang <xi.wang@gmail.com>
Tue, 22 Jan 2013 22:49:29 +0000 (17:49 -0500)
committerMartin Storsjö <martin@martin.st>
Wed, 23 Jan 2013 11:51:27 +0000 (13:51 +0200)
commit3cff53369acdb3bc0695dd6d5df51457fdaa16ce
tree7a087bd477b07976adc2788a539241b2cd4ef98a
parent2e4130037cf3b64921976fbff4579bda0e91dc87
rtmp: fix multiple broken overflow checks

Sanity checks like `data + size >= data_end || data + size < data' are
broken, because `data + size < data' assumes pointer overflow, which is
undefined behavior in C.  Many compilers such as gcc/clang optimize such
checks away.

Use `size < 0 || size >= data_end - data' instead.

Signed-off-by: Xi Wang <xi.wang@gmail.com>
Signed-off-by: Martin Storsjö <martin@martin.st>
libavformat/rtmppkt.c