]> git.ipfire.org Git - thirdparty/git.git/commit
sparse-checkout: fix OOM error with mixed patterns
authorDerrick Stolee <dstolee@microsoft.com>
Thu, 16 Dec 2021 16:13:41 +0000 (16:13 +0000)
committerJunio C Hamano <gitster@pobox.com>
Thu, 30 Dec 2021 22:39:57 +0000 (14:39 -0800)
commit391c3a1020127c9dbf6995effe2f84d3443292d8
treed0ccf897951457c90fc6db281cb98bbcf37c288f
parenta481d4378cc503ac5646d44533a05fcac569a93f
sparse-checkout: fix OOM error with mixed patterns

Add a test to t1091-sparse-checkout-builtin.sh that would result in an
infinite loop and out-of-memory error before this change. The issue
relies on having non-cone-mode patterns while trying to modify the
patterns in cone-mode.

The fix is simple, allowing us to break from the loop when the input
path does not contain a slash, as the "dir" pattern we added does not.

This is only a fix to the critical out-of-memory error. A better
response to such a strange state will follow in a later change.

Reported-by: Calbabreaker <calbabreaker@gmail.com>
Helped-by: Taylor Blau <me@ttaylorr.com>
Reviewed-by: Elijah Newren <newren@gmail.com>
Signed-off-by: Derrick Stolee <dstolee@microsoft.com>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
builtin/sparse-checkout.c
t/t1091-sparse-checkout-builtin.sh