From: Ramkumar Ramachandra Date: Thu, 20 Oct 2011 08:48:33 GMT Subject: Re: [PATCH 3/6] revert: fix buffer overflow in insn sheet parser Message-ID: <4E9FE061.3080601@gmail.com> In-Reply-To: <20111020080328.GA12337@elie.hsd1.il.comcast.net> Hi Jonathan and Junio, Jonathan Nieder writes: > Junio C Hamano wrote: >> Ramkumar Ramachandra 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 Signed-off-by: Ramkumar Ramachandra Signed-off-by: Junio C Hamano --- 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