summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorKangjie Lu <kangjielu@gmail.com>2016-06-02 04:04:56 -0400
committerBen Hutchings <ben@decadent.org.uk>2016-08-22 22:37:19 +0100
commit9fa075340941fc16110bca226c50819b2453fa9b (patch)
tree0a1cf1bb45d2b3e861abc78353cfeaee40117338
parent370db426e5eb8b6823c0e8099616e91f21e3136c (diff)
downloadlinux-stable-9fa075340941fc16110bca226c50819b2453fa9b.tar.gz
linux-stable-9fa075340941fc16110bca226c50819b2453fa9b.tar.bz2
linux-stable-9fa075340941fc16110bca226c50819b2453fa9b.zip
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 <kjlu@gatech.edu> Signed-off-by: David S. Miller <davem@davemloft.net> [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 <ben@decadent.org.uk>
-rw-r--r--net/tipc/node.c3
1 files changed, 2 insertions, 1 deletions
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));
}