Commit bd3941a0 authored by Junio C Hamano's avatar Junio C Hamano

Merge branch 'en/rerere-multi-stage-1-fix'

A corner case bugfix in "git rerere" code.

* en/rerere-multi-stage-1-fix:
  rerere: avoid buffer overrun
  t4200: demonstrate rerere segfault on specially crafted merge
parents e3d4ff03 ad2bf0d9
......@@ -521,7 +521,7 @@ static int check_one_conflict(int i, int *type)
}
*type = PUNTED;
while (ce_stage(active_cache[i]) == 1)
while (i < active_nr && ce_stage(active_cache[i]) == 1)
i++;
/* Only handle regular files with both stages #2 and #3 */
......
......@@ -642,4 +642,33 @@ test_expect_success 'rerere with inner conflict markers' '
test_cmp expect actual
'
test_expect_success 'setup simple stage 1 handling' '
test_create_repo stage_1_handling &&
(
cd stage_1_handling &&
test_seq 1 10 >original &&
git add original &&
git commit -m original &&
git checkout -b A master &&
git mv original A &&
git commit -m "rename to A" &&
git checkout -b B master &&
git mv original B &&
git commit -m "rename to B"
)
'
test_expect_success 'test simple stage 1 handling' '
(
cd stage_1_handling &&
git config rerere.enabled true &&
git checkout A^0 &&
test_must_fail git merge B^0
)
'
test_done
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment