[PATCH 2/4] resolv: fix nsaddr_list array indexing
Siddhesh Poyarekar
siddhesh@redhat.com
Fri Jun 20 02:56:00 GMT 2014
On Fri, Jun 13, 2014 at 05:32:11PM +0200, Aurelien Jarno wrote:
> This commit is basically a revert of commits 6f5c3117 and 16b7dc27.
> Those commits changed the indexing of nsaddr_list array when reading
> resolv.conf, with the goal to simplify the mapping between the
> nsaddr_list and nsaddrs, by making sure we don't have any name server at
> the same both arrays. However the code in __libc_res_nsend hasn't been
> updated, and still assume that all nsaddr_list entries are located at
> the beginning of the array, without any gap. This causes some issues
> when IPv6 name servers are in use.
>
> 2014-06-13 Aurelien Jarno <aurelien@aurel32.net>
>
> [BZ #17053]
> * resolv/res_init.c (__res_vinit): Fill in IPv4 name server
> information using the nserv index. Only count IPv4 name servers
> in statp->nscount.
Looks good to me.
Siddhesh
>
> diff --git a/resolv/res_init.c b/resolv/res_init.c
> index bdec4d9..37004ab 100644
> --- a/resolv/res_init.c
> +++ b/resolv/res_init.c
> @@ -308,9 +308,9 @@ __res_vinit(res_state statp, int preinit) {
> cp++;
> if ((*cp != '\0') && (*cp != '\n')
> && __inet_aton(cp, &a)) {
> - statp->nsaddr_list[nservall].sin_addr = a;
> - statp->nsaddr_list[nservall].sin_family = AF_INET;
> - statp->nsaddr_list[nservall].sin_port =
> + statp->nsaddr_list[nserv].sin_addr = a;
> + statp->nsaddr_list[nserv].sin_family = AF_INET;
> + statp->nsaddr_list[nserv].sin_port =
> htons(NAMESERVER_PORT);
> nserv++;
> #ifdef _LIBC
> @@ -414,7 +414,7 @@ __res_vinit(res_state statp, int preinit) {
> continue;
> }
> }
> - statp->nscount = nservall;
> + statp->nscount = nserv;
> #ifdef _LIBC
> if (nservall - nserv > 0) {
> statp->_u._ext.nscount6 = nservall - nserv;
> --
> 2.0.0
>
-------------- next part --------------
A non-text attachment was scrubbed...
Name: not available
Type: application/pgp-signature
Size: 473 bytes
Desc: not available
URL: <http://sourceware.org/pipermail/libc-alpha/attachments/20140620/ed475395/attachment.sig>
More information about the Libc-alpha
mailing list