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

Re: git config set --file, key-value pair without '= value', gives Segmentation fault

From
Taylor Blau <me@ttaylorr.com>
Date
Jul 31, 2024, 23:36 UTC
Message-ID
<ZqrKeG+alFldB7OY@nand.local>
In-Reply-To
<xmqq5xslyyaf.fsf@gitster.g>
On Wed, Jul 31, 2024 at 03:47:04PM -0700, Junio C Hamano wrote:
Show 19 quoted lines
> I would have actually expected the fix that follow your analysis (by
> the way, I found it really well done) would say something more like
>
> 	if (strcmp(key, store->key))
> 		return 0; /* not ours */
> +	if (!value)
> +		value = "true";
> 	if (store->fixed_value)
> 		return !strcmp(store->fixed_value, value);
>
> but I am not sure exactly how we want to handle synonymous Boolean
> values here.  Regardless of how "true" value is spelled in the
> configuration file, e.g.
>
>         [section]               [section]
>                 key                     key = true
>
> I wonder if "git config set --value=yes [--fixed-value] section.key
> false" should replace either of them to false.

I think it gets tricky when we talk about the implicit true value here for exactly that reason. Do we take true to mean just "true"? Or "true" and "yes", "1", "", and so on?

I tried to match the behavior a few lines down in that function, where we only call regexec() if value is non-NULL.

> It would especially true if the command is invoked with --type=bool
> but it seems that the --type option does not participate in the
> matching with the current value.

I think I could be convinced that --type=bool should treat "", "true", "1", "on", and so on as matching here, but I'm not sure.

> > I'd like to hear from Stolee (CC'd), who is the author of c90702a1f6
> > before submitting this as a standalone patch.

Thanks, Taylor

Previous: Junio C HamanoNext: Han Jiang
Message 4 of 6 in “git config set --file, key-value pair without '= value', gives Segmentation fault”
  1. Han JiangJul 31, 2024
  2. Taylor BlauJul 31, 2024
  3. Junio C HamanoJul 31, 2024
  4. Taylor BlauJul 31, 2024
  5. Han JiangJul 31, 2024
  6. Junio C HamanoAug 1, 2024

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.