]> git.ipfire.org Git - thirdparty/lxc.git/commitdiff
fix buffer overflow in ifaddrs.c 743/head
authortw19881113@gmail.com <tw19881113@gmail.com>
Wed, 30 Dec 2015 07:24:43 +0000 (15:24 +0800)
committerTw <tw19881113@gmail.com>
Wed, 30 Dec 2015 07:41:36 +0000 (15:41 +0800)
jenkins: ok to test

Signed-off-by: Tw <tw19881113@gmail.com>
src/include/ifaddrs.c

index 109f3229772a3f205510ef3d5bd7c2253ffb2a91..1f954dd7d3ba62a8ccef07bfb3b3424346f15c88 100644 (file)
@@ -473,7 +473,9 @@ static void interpretAddr(struct nlmsghdr *p_hdr, struct ifaddrs **p_links, stru
         {
             l_mask[i] = 0xff;
         }
-        l_mask[i] = 0xff << (8 - (l_prefix % 8));
+        if (l_prefix % 8) {
+            l_mask[i] = 0xff << (8 - (l_prefix % 8));
+        }
 
         makeSockaddr(l_entry->ifa_addr->sa_family, (struct sockaddr *)l_addr, l_mask, l_maxPrefix / 8);
         l_entry->ifa_netmask = (struct sockaddr *)l_addr;