From d89b3d80f92035acda41010b8d68b32bc471b846 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Ond=C5=99ej=20B=C3=ADlka?= Date: Thu, 5 Jun 2014 19:21:32 +0200 Subject: Fix memory overrun in getifaddrs_internal. Fixes bug 15698. --- sysdeps/unix/sysv/linux/ifaddrs.c | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) (limited to 'sysdeps/unix') diff --git a/sysdeps/unix/sysv/linux/ifaddrs.c b/sysdeps/unix/sysv/linux/ifaddrs.c index d83e8f8..6deb094 100644 --- a/sysdeps/unix/sysv/linux/ifaddrs.c +++ b/sysdeps/unix/sysv/linux/ifaddrs.c @@ -780,10 +780,10 @@ getifaddrs_internal (struct ifaddrs **ifap) else preflen = ifam->ifa_prefixlen; - for (i = 0; i < (preflen / 8); i++) + for (i = 0; i < ((preflen - 1) / 8); i++) *cp++ = 0xff; c = 0xff; - c <<= (8 - (preflen % 8)); + c <<= ((128 - preflen) % 8); *cp = c; } } -- cgit v1.1