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

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



Benjamin Kramer <benny.kra@xxxxxxxxxxxxxx> writes:

> 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.
--
To unsubscribe from this list: send the line "unsubscribe git" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at  http://vger.kernel.org/majordomo-info.html

[Index of Archives]     [Linux Kernel Development]     [Gcc Help]     [IETF Annouce]     [DCCP]     [Netdev]     [Networking]     [Security]     [V4L]     [Bugtraq]     [Yosemite]     [MIPS Linux]     [ARM Linux]     [Linux Security]     [Linux RAID]     [Linux SCSI]     [Fedora Users]