git/list[1] front-page[2] threads[3] people[4] search[5] about
 

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
Previous: Jonathan NiederNext: Jonathan Nieder
Message 7 of 16 in “Sequencer fixups mini-series”
  1. 0/6 Sequencer fixups mini-seriesRamkumar Ramachandra, Oct 19, 2011
  2. 1/6 revert: free msg in format_todo()Ramkumar Ramachandra, Oct 19, 2011
  3. 2/6 revert: simplify getting commit subject in format_todo()Ramkumar Ramachandra, Oct 19, 2011
  4. 3/6 revert: fix buffer overflow in insn sheet parserRamkumar Ramachandra, Oct 19, 2011
  5. Junio C HamanoOct 20, 2011
  6. Jonathan NiederOct 20, 2011
  7. Ramkumar RamachandraOct 20, 2011
  8. Jonathan NiederOct 20, 2011
  9. Ramkumar RamachandraOct 20, 2011
  10. Junio C HamanoOct 20, 2011
  11. Jonathan NiederOct 20, 2011
  12. Junio C HamanoOct 20, 2011
  13. Ramkumar RamachandraOct 22, 2011
  14. 4/6 revert: make commit subjects in insn sheet optionalRamkumar Ramachandra, Oct 19, 2011
  15. 5/6 revert: allow mixed pick and revert instructionsRamkumar Ramachandra, Oct 19, 2011
  16. 6/6 revert: simplify communicating command-line argumentsRamkumar Ramachandra, Oct 19, 2011

Read the whole thread, see it on lore, or plain text.

$ cat FOOTERMessages come from the public archive at lore.kernel.org/git, fetched every hour. The front page is chosen and written each morning by an AI editor and can be wrong; the threads themselves are the record. About and API. For agents: an MCP server at https://gitlist.dev/mcp, and any thread, story or person page as Markdown by adding .md to its URL (or sending Accept: text/markdown). Details in /llms.txt.