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

Re: Re: [PATCH] mingw: do not crash on open(NULL, ...)

From
Erik Faye-Lund <kusmabite@gmail.com>
Date
Sep 27, 2010, 13:37 UTC
Message-ID
<AANLkTik5mr7MTPzrWPG00T40a08oiV7X8ZXBHkXva+DO@mail.gmail.com>
In-Reply-To
<AANLkTikv8M8xuESQzO7qfPB72d51hTcosUgKreLu7Y=C@mail.gmail.com>
On Mon, Sep 27, 2010 at 3:31 PM, Pat Thoyts <patthoyts@gmail.com> wrote:
Show 51 quoted lines
> On 27 September 2010 14:19, Erik Faye-Lund <kusmabite@gmail.com> wrote:
>> On Fri, Sep 24, 2010 at 12:50 AM, Junio C Hamano <gitster@pobox.com> wrote:
>>> Erik Faye-Lund <kusmabite@gmail.com> writes:
>>>
>>>> On Thu, Sep 23, 2010 at 10:35 AM, Erik Faye-Lund <kusmabite@gmail.com> wrote:
>>>>> Since open() already sets errno correctly for the NULL-case, let's just
>>>>> avoid the problematic strcmp.
>>>>>
>>>>> Signed-off-by: Erik Faye-Lund <kusmabite@gmail.com>
>>>>
>>>> I guess I should add a comment as to why this patch is needed:
>>>>
>>>> This seems to be the culprit for issue 523 in the msysGit issue
>>>> tracker: http://code.google.com/p/msysgit/issues/detail?id=523
>>>>
>>>> fetch_and_setup_pack_index() apparently pass a NULL-pointer to
>>>> parse_pack_index(), which in turn pass it to check_packed_git_idx(),
>>>> which again pass it to open(). This all looks intentional to my
>>>> (http.c-untrained) eye.
>>>
>>> Surely, open(NULL) should be rejected by a sane system, and your patch
>>> looks sane to me.
>>>
>>
>> Since this doesn't seem to be in git.git yet, perhaps you could squash
>> this on top? I didn't notice it in time, but fopen lacked the same
>> check (freopen already had the check). It's not as important, because
>> it doesn't seem like we have any code reaching this path so far, but
>> it would IMO be better to fix this now rather than having to chase
>> down the issue again later...
>>
>> diff --git a/compat/mingw.c b/compat/mingw.c
>> index 4595aaa..f069fea 100644
>> --- a/compat/mingw.c
>> +++ b/compat/mingw.c
>> @@ -160,7 +160,7 @@ ssize_t mingw_write(int fd, const void *buf, size_t count)
>>  #undef fopen
>>  FILE *mingw_fopen (const char *filename, const char *otype)
>>  {
>> -       if (!strcmp(filename, "/dev/null"))
>> +       if (filename && !strcmp(filename, "/dev/null"))
>>                filename = "nul";
>>        return fopen(filename, otype);
>>  }
>>
>
> I'll apply this to the devel branch and try to remember to squash it
> on the next rebase-merge.
> Cheers,
> Pat
>

Wouldn't it be better to just get this squashed in git.git, and drop the patch in the next rebase-merge? Since this bug is in git.git as well, it makes sense to get the patch merged there, no?

Previous: Pat ThoytsNext: Johannes Schindelin
Message 8 of 12 in “mingw: do not crash on open(NULL, ...)”
  1. mingw: do not crash on open(NULL, ...)Erik Faye-Lund, Sep 23, 2010
  2. Erik Faye-LundSep 23, 2010
  3. Pat ThoytsSep 23, 2010
  4. Erik Faye-LundSep 23, 2010
  5. Junio C HamanoSep 23, 2010
  6. Erik Faye-LundSep 27, 2010
  7. Pat ThoytsSep 27, 2010
  8. Erik Faye-LundSep 27, 2010
  9. Johannes SchindelinSep 27, 2010
  10. Johannes SchindelinSep 24, 2010
  11. Johannes SixtSep 23, 2010
  12. Pat ThoytsSep 24, 2010

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.