Bug#432227: gdm: getaddrinfo fails when ipv6 is enabled

E L elylevy at cs.huji.ac.il
Wed Jul 11 14:38:35 UTC 2007


I must be confusing something with the build

1) I installed 2.18.3-3 and saw that the problem is still there
2) I apt-get source for the sources of 2.18.3-3
3) I looked at the source and saw:
#ifdef ENABLE_IPV6
        hostbuf[BUFSIZ-1] = '\0';
        if (gethostname (hostbuf, BUFSIZ-1) != 0) {
                gdm_debug ("%s: Could not get server hostname",
"gdm_peek_local_address_list");

                sin6 = g_new0 (struct sockaddr_in6, 1);
                sin6->sin6_family = AF_INET6;
                sin6->sin6_addr = in6addr_loopback;
                return g_list_append (the_list, sin6);
        }

        if (getaddrinfo (hostbuf, NULL, &hints, &result) != 0) {
                gdm_debug ("%s: Could not get address from hostname!",
"gdm_peek_local_address_list");


4) I added my patch and did ./configure --enable-ipv6=yes && make && make
install
5) I tested it and gdm worked correctly.

Did I look at the wrong source?
Was I suppose to  run some other command rather than apt-get source?

Ely
On 7/11/07, Loïc Minier <lool at dooz.org> wrote:
>
> On Wed, Jul 11, 2007, E L wrote:
> > The patch I sent you is against the source I got from apt-get source gdm
> > for
> > 2.18.3-3.
> > The problem still happen in that version and after building it with the
> > patch I sent you the problem disappear.
>
> I don't understand; after I apply your patch to a patched source tree
> (which you can get with: QUILT_PATCHES=debian/patches quilt push -a),
> the code looks like this:
> #ifdef ENABLE_IPV6
>
>         memset (&hints, 0, sizeof (hints));
>         hints.ai_socktype = SOCK_DGRAM;
>         hints.ai_flags = AI_CANONNAME;
>
>         hostbuf[BUFSIZ-1] = '\0';
>         if (gethostname (hostbuf, BUFSIZ-1) != 0) {
>                 gdm_debug ("%s: Could not get server hostname",
> "gdm_peek_local_address_list");
>
>                 sin6 = g_new0 (struct sockaddr_in6, 1);
>                 sin6->sin6_family = AF_INET6;
>                 sin6->sin6_addr = in6addr_loopback;
>                 return g_list_append (the_list, sin6);
>         }
>
>         memset (&hints, 0, sizeof (hints));
>         hints.ai_family = AF_INET;
>         hints.ai_family |= AF_INET6;
>
>         if (getaddrinfo (hostbuf, NULL, &hints, &result) != 0) {
>                 gdm_debug ("%s: Could not get address from hostname!",
> "gdm_peek_local_address_list");
>
> As you see, there's a superfluous memset() from the two.
>
> How are you building the Debian source?  With dpkg-buildpackage?
>
> --
> Loïc Minier
>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: http://lists.alioth.debian.org/pipermail/pkg-gnome-maintainers/attachments/20070711/5b8e8e98/attachment.htm 


More information about the pkg-gnome-maintainers mailing list