Handle zero prefix length in getifaddrs (BZ #17371)

This commit is contained in:
Andreas Schwab 2014-09-13 10:10:29 +02:00
parent 61fe374a44
commit a7b8726870
3 changed files with 11 additions and 8 deletions

View File

@ -1,3 +1,9 @@
2014-09-15 Andreas Schwab <schwab@linux-m68k.org>
[BZ #17371]
* sysdeps/unix/sysv/linux/ifaddrs.c (getifaddrs_internal): Fix
last change to handle zero prefix length.
2014-09-15 Siddhesh Poyarekar <siddhesh@redhat.com>
* sysdeps/posix/sysconf.c (__sysconf): Return -1 for

2
NEWS
View File

@ -9,7 +9,7 @@ Version 2.21
* The following bugs are resolved with this release:
17363, 17370.
17363, 17370, 17371.
Version 2.20

View File

@ -770,20 +770,17 @@ getifaddrs_internal (struct ifaddrs **ifap)
if (cp != NULL)
{
char c;
unsigned int preflen;
if ((max_prefixlen > 0) &&
(ifam->ifa_prefixlen > max_prefixlen))
if (ifam->ifa_prefixlen > max_prefixlen)
preflen = max_prefixlen;
else
preflen = ifam->ifa_prefixlen;
for (i = 0; i < ((preflen - 1) / 8); i++)
for (i = 0; i < preflen / 8; i++)
*cp++ = 0xff;
c = 0xff;
c <<= ((128 - preflen) % 8);
*cp = c;
if (preflen % 8)
*cp = 0xff << (8 - preflen % 8);
}
}
}