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

Re: [PATCH] daemon.c: fix segfault on OS X

From
Junio C Hamano <gitster@pobox.com>
Date
Apr 27, 2009, 02:28 UTC
Message-ID
<7vy6tmbzj3.fsf@gitster.siamese.dyndns.org>
In-Reply-To
<49F4BD9F.6070709@googlemail.com>
Benjamin Kramer <benny.kra@googlemail.com> writes:
Show 9 quoted lines
> On OS X (and maybe other unices) getaddrinfo(3) returns NULL
> in the ai_canonname field if it is called with an IP address.
>
> steps to reproduce:
> $ git daemon --export-all
> $ git clone git://127.0.0.1/frotz
> => git daemon's fork (silently) segfaults.
>
> Remove the pointless loop while at it.

Hmm. This codepath comes from dd467629, both the loop and the use of getaddrinfo.

I have a mild suspicion that the loop originally was meant to notice that an element in the addrinfo linked list is unusable and skip it to find a usable one in the list or something like that, but as it stands it processes the first entry (or fails to process and segfaults for you ;-) and breaks out, which indeed is pointless.

But the part your patch touches is about supporting virtual hosting via pattern interpolation, and the daemon will still segfault even with your patch when somebody uses %CH expansion, because canon_hostname is left as NULL, won't it? I suspect in such a case it might be safer to use a copy of the ip_address or something.

Previous: Benjamin KramerNext: Benjamin Kramer
Message 2 of 5 in “daemon.c: fix segfault on OS X”
  1. daemon.c: fix segfault on OS XBenjamin Kramer, Apr 26, 2009
  2. Junio C HamanoApr 27, 2009
  3. daemon.c: fix segfault on OS XBenjamin Kramer, Apr 27, 2009
  4. Johannes SchindelinApr 27, 2009
  5. Johannes SchindelinApr 27, 2009

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.