mirror of
https://sourceware.org/git/glibc.git
synced 2025-07-29 11:41:21 +03:00
Handle zero prefix length in getifaddrs (BZ #17371)
This commit is contained in:
@ -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);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
Reference in New Issue
Block a user