summary refs log tree commit diff
path: root/net/tipc/netlink_compat.c
diff options
context:
space:
mode:
authorKangjie Lu <kangjielu@gmail.com>2016-06-02 04:04:56 -0400
committerDavid S. Miller <davem@davemloft.net>2016-06-02 21:32:37 -0700
commit5d2be1422e02ccd697ccfcd45c85b4a26e6178e2 (patch)
treeabd6690fafd3c802850031dc07041ff7c1daa2b4 /net/tipc/netlink_compat.c
parentce25d66ad5f8d921bac5fe2d32d62fa30c0f9a70 (diff)
downloadlinux-5d2be1422e02ccd697ccfcd45c85b4a26e6178e2.tar.gz
tipc: fix an infoleak in tipc_nl_compat_link_dump
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>
Diffstat (limited to 'net/tipc/netlink_compat.c')
-rw-r--r--net/tipc/netlink_compat.c3
1 files changed, 2 insertions, 1 deletions
diff --git a/net/tipc/netlink_compat.c b/net/tipc/netlink_compat.c
index f795b1dd0ccd..3ad9fab1985f 100644
--- a/net/tipc/netlink_compat.c
+++ b/net/tipc/netlink_compat.c
@@ -604,7 +604,8 @@ static int tipc_nl_compat_link_dump(struct tipc_nl_compat_msg *msg,
 
 	link_info.dest = nla_get_flag(link[TIPC_NLA_LINK_DEST]);
 	link_info.up = htonl(nla_get_flag(link[TIPC_NLA_LINK_UP]));
-	strcpy(link_info.str, nla_data(link[TIPC_NLA_LINK_NAME]));
+	nla_strlcpy(link_info.str, nla_data(link[TIPC_NLA_LINK_NAME]),
+		    TIPC_MAX_LINK_NAME);
 
 	return tipc_add_tlv(msg->rep, TIPC_TLV_LINK_INFO,
 			    &link_info, sizeof(link_info));