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

Re: [PATCH 1/1] stash: fix segmentation fault when files were added with intent

From
Junio C Hamano <gitster@pobox.com>
Date
Jan 18, 2019, 20:42 UTC
Message-ID
<xmqq5zulk88e.fsf@gitster-ct.c.googlers.com>
In-Reply-To
<b5bbc7793c50991c7cb5a5188f53ccc3a14b23f6.1547805015.git.gitgitgadget@gmail.com>
"Matthew Kraai via GitGitGadget" <gitgitgadget@gmail.com> writes:
Show 9 quoted lines
> From: Matthew Kraai <mkraai@its.jnj.com>
>
> After `git add -N <file>`, the index is in a special state. A state for
> which the built-in stash was not prepared, as it failed to initialize
> the `rev` structure in that case before using `&rev.pending`.
>
> Detailed explanation: If `reset_tree()` returns a non-zero value,
> `stash_working_tree()` calls `object_array_clear()` with `&rev.pending`.
> If `rev` is not initialized, this causes a segmentation fault.

It is a bit strange that the paragraph for "detailed explanation" is shorter than the paragraph it attempts to clarify.

Dropping those two words "Detailed explanation:" easily fixes awkwardness ;-).

Show 7 quoted lines
> +test_expect_success 'stash --intent-to-add file' '
> +	git reset --hard &&
> +	echo new >file4 &&
> +	git add --intent-to-add file4 &&
> +	test_when_finished "git rm -f file4" &&
> +	test_must_fail git stash
> +'

This still must fail because an index with an I-T-A cannot be included in a stash, but test_must_fail will make sure that the command does not suffer an uncontrolled crash. Good.

Previous: Matthew Kraai via GitGitGadgetNext: Johannes Schindelin
Message 3 of 6 in “built-in stash: fix segmentation fault when files were added with intent”
  1. 0/1 built-in stash: fix segmentation fault when files were added with intentJohannes Schindelin via GitGitGadget, Jan 18, 2019
  2. 1/1 stash: fix segmentation fault when files were added with intentMatthew Kraai via GitGitGadget, Jan 18, 2019
  3. Junio C HamanoJan 18, 2019
  4. Johannes SchindelinJan 21, 2019
  5. Junio C HamanoJan 22, 2019
  6. Johannes SchindelinJan 23, 2019

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.