mirror of
git://sourceware.org/git/glibc.git
synced 2024-11-21 01:12:26 +08:00
Handle zero prefix length in getifaddrs (BZ #17371)
This commit is contained in:
parent
61fe374a44
commit
a7b8726870
@ -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
2
NEWS
@ -9,7 +9,7 @@ Version 2.21
|
||||
|
||||
* The following bugs are resolved with this release:
|
||||
|
||||
17363, 17370.
|
||||
17363, 17370, 17371.
|
||||
|
||||
Version 2.20
|
||||
|
||||
|
@ -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);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
Loading…
Reference in New Issue
Block a user