apply: make update_pre_post_images() sanity check the given postlen
commit2988289f2c5764605105037bfcb12f85b9971cf9
authorJunio C Hamano <gitster@pobox.com>
Fri, 16 Jan 2015 19:54:47 +0000 (16 11:54 -0800)
committerJunio C Hamano <gitster@pobox.com>
Thu, 22 Jan 2015 20:57:24 +0000 (22 12:57 -0800)
tree12069cb25961f37b6ac27be50631fb9ff497ef02
parent923fc5ab4017801078a54310f94fd95c28b91ce0
apply: make update_pre_post_images() sanity check the given postlen

"git apply --whitespace=fix" used to be able to assume that fixing
errors will always reduce the size by e.g. stripping whitespaces at
the end of lines or collapsing runs of spaces into tabs at the
beginning of lines.  An update to accomodate fixes that lengthens
the result by e.g. expanding leading tabs into spaces were made long
time ago but the logic miscounted the necessary space after such
whitespace fixes, leading to either under-allocation or over-usage
of already allocated space.

Illustrate this with a runtime sanity-check to protect us from
future breakage.  The test was stolen from Kyle McKay who helped
to identify the problem.

Helped-by: "Kyle J. McKay" <mackyle@gmail.com>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
builtin/apply.c
t/t4138-apply-ws-expansion.sh [new file with mode: 0755]