]> granicus.if.org Git - strace/commitdiff
inet_parse_response: add a safety check
authorDmitry V. Levin <ldv@altlinux.org>
Thu, 28 Jan 2016 23:46:56 +0000 (23:46 +0000)
committerDmitry V. Levin <ldv@altlinux.org>
Wed, 3 Feb 2016 12:42:20 +0000 (12:42 +0000)
* socketutils.c (inet_parse_response): Check that netlink message
is large enough to contain a inet_diag_msg structure.

socketutils.c

index 62253044ea45e315b6cf52d8480901c06635e632..aa8216390ab264c9b12e9f3b9f122e3f71ce11f1 100644 (file)
@@ -95,6 +95,8 @@ inet_parse_response(const char *proto_name, const void *data, int data_len,
        static const char zero_addr[sizeof(struct in6_addr)];
        socklen_t addr_size, text_size;
 
+       if (data_len < (int) NLMSG_LENGTH(sizeof(*diag_msg)))
+               return false;
        if (diag_msg->idiag_inode != inode)
                return false;