Fix incorrect getaddrinfo assertion trigger
authorAllan McRae <allan@archlinux.org>
Fri, 25 Oct 2013 04:25:38 +0000 (14:25 +1000)
committerAllan McRae <allan@archlinux.org>
Fri, 25 Oct 2013 04:28:32 +0000 (14:28 +1000)
commit894f3f1049135dcbeaab8f18690973663ef3147c
tree5be512d821ae330cb5cc88fb44f74b6184a34626
parentb85545a67110b236676aec8000f52d8385465660
Fix incorrect getaddrinfo assertion trigger

[BZ #9954]

With the following /etc/hosts:
127.0.0.1       www.my-domain.es
127.0.1.1       www.my-domain.es
192.168.0.1     www.my-domain.es

Using getaddrinfo() on www.my-domain.es, trigger the following assertion:
../sysdeps/posix/getaddrinfo.c:1473: rfc3484_sort: Assertion
`src->results[i].native == -1 || src->results[i].native == a1_native' failed.

This is due to two different bugs:
- In rfc3484_sort() rule 7, src->results[i].native is assigned even if
src->results[i].index is -1, meaning that no interface is associated.
- In getaddrinfo() the source IP address used with the lo interface needs a
special case, as it can be any IP within 127.X.Y.Z.
ChangeLog
sysdeps/posix/getaddrinfo.c