From: Kangjie Lu Date: Thu, 2 Jun 2016 08:04:56 +0000 (-0400) Subject: tipc: fix an infoleak in tipc_nl_compat_link_dump X-Git-Tag: v3.2.82~4 X-Git-Url: https://git.openpandora.org/cgi-bin/gitweb.cgi?p=pandora-kernel.git;a=commitdiff_plain;h=9fa075340941fc16110bca226c50819b2453fa9b tipc: fix an infoleak in tipc_nl_compat_link_dump commit 5d2be1422e02ccd697ccfcd45c85b4a26e6178e2 upstream. link_info.str is a char array of size 60. Memory after the NULL byte is not initialized. Sending the whole object out can cause a leak. Signed-off-by: Kangjie Lu Signed-off-by: David S. Miller [bwh: Backported to 3.2: the unpadded strcpy() is in tipc_node_get_links() and no nlattr is involved, so use strncpy()] Signed-off-by: Ben Hutchings --- diff --git a/net/tipc/node.c b/net/tipc/node.c index 27b4bb0cca6c..915bc6b0a0a1 100644 --- a/net/tipc/node.c +++ b/net/tipc/node.c @@ -485,7 +485,8 @@ struct sk_buff *tipc_node_get_links(const void *req_tlv_area, int req_tlv_space) continue; link_info.dest = htonl(n_ptr->addr); link_info.up = htonl(tipc_link_is_up(n_ptr->links[i])); - strcpy(link_info.str, n_ptr->links[i]->name); + strncpy(link_info.str, n_ptr->links[i]->name, + sizeof(link_info.str)); tipc_cfg_append_tlv(buf, TIPC_TLV_LINK_INFO, &link_info, sizeof(link_info)); }