Re: [PATCH 3/6] revert: fix buffer overflow in insn sheet parser
- From
Ramkumar Ramachandra <artagnon@gmail.com>
- Date
- Oct 20, 2011, 08:48 UTC
- Message-ID
- <4E9FE061.3080601@gmail.com>
- In-Reply-To
- <20111020080328.GA12337@elie.hsd1.il.comcast.net>
Hi Jonathan and Junio,
Jonathan Nieder writes:
Show 11 quoted lines
> Junio C Hamano wrote: >> Ramkumar Ramachandra <artagnon@gmail.com> writes: > >>> Check that the commit name argument to a "pick" or "revert" action in >>> '.git/sequencer/todo' is not too long > [...] >> Given that this function is going to be fixed properly so that it does not >> even need to use the "on-stack buffer", is this really necessary? > > Right, I don't think it is. Keeping a testcase sounds worthwhile, > though.
Okay. How about putting this after 5/6?
-- 8< -- Subject: [PATCH] t3510: guard against buffer overflows in parser
To guard against a buffer overflow in the parser, verify that instruction sheets with overly long object names are parsed.
Suggested-by: Jonathan Nieder <jrnieder@gmail.com> Signed-off-by: Ramkumar Ramachandra <artagnon@gmail.com> Signed-off-by: Junio C Hamano <gitster@pobox.com> --- t/t3510-cherry-pick-sequence.sh | 14 ++++++++++++++ 1 files changed, 14 insertions(+), 0 deletions(-)
diff --git a/t/t3510-cherry-pick-sequence.sh b/t/t3510-cherry-pick-sequence.sh index 0e29e03..39b55c1 100755 --- a/t/t3510-cherry-pick-sequence.sh +++ b/t/t3510-cherry-pick-sequence.sh @@ -12,6 +12,9 @@ test_description='Test cherry-pick continuation features . ./test-lib.sh +# Repeat first match 10 times +_r10='\1\1\1\1\1\1\1\1\1\1' + pristine_detach () { git cherry-pick --reset && git checkout -f "$1^0" && @@ -211,6 +214,17 @@ test_expect_success 'malformed instruction sheet 2' ' test_must_fail git cherry-pick --continue ' +test_expect_success 'malformed instruction sheet 3' ' + pristine_detach initial && + test_must_fail git cherry-pick base..anotherpick && + echo "resolved" >foo && + git add foo && + git commit && + sed "s/pick \([0-9a-f]*\)/pick $_r10/" .git/sequencer/todo >new_sheet && + cp new_sheet .git/sequencer/todo && + test_must_fail git cherry-pick --continue +' + test_expect_success 'commit descriptions in insn sheet are optional' ' pristine_detach initial && test_must_fail git cherry-pick base..anotherpick &&
-- 1.7.6.351.gb35ac.dirty