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

Re: [PATCH 3/4] http.c: avoid danging pointer to local variable `finished`

From
Junio C Hamano <gitster@pobox.com>
Date
May 24, 2022, 20:06 UTC
Message-ID
<xmqq35gyhf11.fsf@gitster.g>
In-Reply-To
<220524.86fskzxsvq.gmgdl@evledraar.gmail.com>
Ævar Arnfjörð Bjarmason <avarab@gmail.com> writes:
Show 13 quoted lines
> On Tue, May 24 2022, Johannes Schindelin via GitGitGadget wrote:
>
>> From: Johannes Schindelin <johannes.schindelin@gmx.de>
>> [...]
>> Let's drop that local variable and introduce a new flag in the slot that
>> is used to indicate that even while the slot is no longer in use, it is
>> still reserved until further notice. It is the responsibility of
>> `run_active_slot()` to clear that flag once it is done with that slot.
>>
>> Initial-patch-by: Junio C Hamano <gitster@pobox.com>
>
> Don't you mean by me?
> I.e. https://lore.kernel.org/git/patch-1.1-1cec367e805-20220126T212921Z-avarab@gmail.com/

Most likely, but this version is so distant from the "clear slot->finished before leaving run_active_slot()" Dscho and I were recently discussing, that I do not think it can be said to have been derived from that one. This is completely a different patch that makes different changes.

The "clear slot->finished", by the way, is what I think is the right thing to do, especially that the objective is to squelch the false positive warning from a new compiler. If there is a way to annotate the line for the compiler to tell it not to warn about it, that would have been even better.

> This seems to be derived from that, or perhaps you just came up with
> something similar independently. Junio then came up with the smaller
> https://lore.kernel.org/git/xmqq8rv2nggn.fsf@gitster.g/

I actually do not think so. Yours is revert of the existing fix the compiler is confused about, and I have a feeling that if the original fix is still relevant, the problem the original fix wanted to address will resurface as a regression.

If I am reading the patch correctly, Dscho's is to avoid [*] reusing a slot while any run_active_slot() is still waiting for its completion. The approach would solve the problem the original fix wanted to solve in a different way. Personally I do not think such a surgery is necessary only to squelch false positives from a new warning compiler, though.

[Footnote] 
 * I said "is to avoid", not "avoids", because I haven't studied the
   patch with sufficient degree of carefulness to say for sure, even
   though I can see that is the intent.
Previous: Ævar Arnfjörð BjarmasonNext: Johannes Schindelin
Message 12 of 23 in “ci: fix windows-build with GCC v12.x”
  1. 0/4 ci: fix windows-build with GCC v12.xJohannes Schindelin via GitGitGadget, May 24, 2022
  2. 1/4 compat/win32/syslog: fix use-after-reallocJohannes Schindelin via GitGitGadget, May 24, 2022
  3. Johannes SchindelinMay 24, 2022
  4. Junio C HamanoMay 24, 2022
  5. 2/4 nedmalloc: avoid new compile errorJohannes Schindelin via GitGitGadget, May 24, 2022
  6. Ævar Arnfjörð BjarmasonMay 24, 2022
  7. René ScharfeMay 24, 2022
  8. Johannes SchindelinMay 24, 2022
  9. Ævar Arnfjörð BjarmasonMay 24, 2022
  10. 3/4 http.c: avoid danging pointer to local variable `finished`Johannes Schindelin via GitGitGadget, May 24, 2022
  11. Ævar Arnfjörð BjarmasonMay 24, 2022
  12. Junio C HamanoMay 24, 2022
  13. Johannes SchindelinMay 24, 2022
  14. Ævar Arnfjörð BjarmasonMay 24, 2022
  15. Junio C HamanoMay 24, 2022
  16. Johannes SchindelinMay 25, 2022
  17. Ævar Arnfjörð BjarmasonMay 25, 2022
  18. 4/4 dir.c: avoid "exceeds maximum object size" error with GCC v12.xJohannes Schindelin via GitGitGadget, May 24, 2022
  19. Ævar Arnfjörð BjarmasonMay 24, 2022
  20. Johannes SchindelinMay 24, 2022
  21. Derrick StoleeMay 25, 2022
  22. Junio C HamanoMay 25, 2022
  23. Jeff HostetlerMay 24, 2022

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.