diff options
author | Kangjie Lu <kangjielu@gmail.com> | 2016-06-02 10:04:56 +0200 |
---|---|---|
committer | David S. Miller <davem@davemloft.net> | 2016-06-03 06:32:37 +0200 |
commit | 5d2be1422e02ccd697ccfcd45c85b4a26e6178e2 (patch) | |
tree | abd6690fafd3c802850031dc07041ff7c1daa2b4 /net | |
parent | Possible problem with e6afc8ac ("udp: remove headers from UDP packets before ... (diff) | |
download | linux-5d2be1422e02ccd697ccfcd45c85b4a26e6178e2.tar.xz linux-5d2be1422e02ccd697ccfcd45c85b4a26e6178e2.zip |
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')
-rw-r--r-- | net/tipc/netlink_compat.c | 3 |
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)); |