Core with 64Bit pam_radius_auth on Solaris 9

Alan DeKok aland at deployingradius.com
Tue Sep 28 09:31:57 CEST 2010


Peter Lambrechtsen wrote:
> It seems around like 734 in pam_radius_auth.c:
> 
>     if ((hp = gethostbyname(hostname)) == (struct hostent *) NULL) {
>       ipaddr = 0x00000000;    /* no client IP address */
>     } else {
>       ipaddr = ntohl(*(UINT4 *) hp->h_addr); /* use the first one
> available */
>     }
> 
> That gethostbyname returns an h_addr IP address of "0.0.0.1" on our
> solaris box when running in 64Bit, but not in 32Bit.  The box has IPV6
> fully disabled so we are not sure why it's doing that.

  Ah... "0.0.0.1" is "::1" in IPv6.

  OK, the module *should* check the "h_addrtype" field.  It's not doing
that right now.

> Otherwise we many to using gethostbyname_r rather than gethostbyname and
> get it working that way I'll submit a patch.  And use the get_ipaddr
> function at line 242 only once rather than having two seprate places
> where gethostbyname is called to return an IP Address

  OK, thanks.

  Alan DeKok.



More information about the Freeradius-Users mailing list