Re: IPV4 addresses on IPV6 machines in pg_hba.conf - Mailing list pgsql-patches

From Tom Lane
Subject Re: IPV4 addresses on IPV6 machines in pg_hba.conf
Date
Msg-id 22078.1062800231@sss.pgh.pa.us
Whole thread Raw
In response to Re: IPV4 addresses on IPV6 machines in pg_hba.conf  (Andreas Pflug <pgadmin@pse-consulting.de>)
Responses Re: IPV4 addresses on IPV6 machines in pg_hba.conf  (Andreas Pflug <pgadmin@pse-consulting.de>)
List pgsql-patches
Andreas Pflug <pgadmin@pse-consulting.de> writes:
> Tom Lane wrote:
>> I thought this was still really messy, so I modified it to use a
>> separate "promote v4 address to v6" subroutine.  I've applied the
>> attached patch (plus docs).  It's not very well tested since I don't
>> have an IPv6 setup here; please check that it does what you want.
>>
> It SEGVs. Reason is that the memcpy of the promote_v4_to_v6_XXX
> functions assumes that the sockaddr_storage is large enough to hold an
> IPV6 address, which appears to be not true.

Drat.  That didn't happen when I forced it through that path here, but
I guess it could if getaddrinfo is trying to be conservative about the
amount of memory in its return value.  I'll rework it.

> IMHO the struct needs to be created officially by
> getaddrinfo(), which will lead more or less the the same solution I
> posted previously.

No, we just need to use datastructures that are under our control for
the values that will get passed to rangeSockAddr.  A few more lines...

            regards, tom lane

pgsql-patches by date:

Previous
From: Robert Treat
Date:
Subject: Re: note on dropped columns in pg_attribute
Next
From: Andreas Pflug
Date:
Subject: Re: IPV4 addresses on IPV6 machines in pg_hba.conf