diff options
author | Kangjie Lu <kangjielu@gmail.com> | 2016-06-02 04:04:56 -0400 |
---|---|---|
committer | Ben Hutchings <ben@decadent.org.uk> | 2016-08-22 22:37:19 +0100 |
commit | 9fa075340941fc16110bca226c50819b2453fa9b (patch) | |
tree | 0a1cf1bb45d2b3e861abc78353cfeaee40117338 | |
parent | 370db426e5eb8b6823c0e8099616e91f21e3136c (diff) | |
download | linux-stable-9fa075340941fc16110bca226c50819b2453fa9b.tar.gz |
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.c | 3 |
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)); } |