diff options
Diffstat (limited to 'net/tipc/node.c')
| -rw-r--r-- | net/tipc/node.c | 15 |
1 files changed, 13 insertions, 2 deletions
diff --git a/net/tipc/node.c b/net/tipc/node.c index baaf93f12cbd..f29549de9245 100644 --- a/net/tipc/node.c +++ b/net/tipc/node.c | |||
| @@ -1950,6 +1950,7 @@ out: | |||
| 1950 | int tipc_nl_node_get_link(struct sk_buff *skb, struct genl_info *info) | 1950 | int tipc_nl_node_get_link(struct sk_buff *skb, struct genl_info *info) |
| 1951 | { | 1951 | { |
| 1952 | struct net *net = genl_info_net(info); | 1952 | struct net *net = genl_info_net(info); |
| 1953 | struct nlattr *attrs[TIPC_NLA_LINK_MAX + 1]; | ||
| 1953 | struct tipc_nl_msg msg; | 1954 | struct tipc_nl_msg msg; |
| 1954 | char *name; | 1955 | char *name; |
| 1955 | int err; | 1956 | int err; |
| @@ -1957,9 +1958,19 @@ int tipc_nl_node_get_link(struct sk_buff *skb, struct genl_info *info) | |||
| 1957 | msg.portid = info->snd_portid; | 1958 | msg.portid = info->snd_portid; |
| 1958 | msg.seq = info->snd_seq; | 1959 | msg.seq = info->snd_seq; |
| 1959 | 1960 | ||
| 1960 | if (!info->attrs[TIPC_NLA_LINK_NAME]) | 1961 | if (!info->attrs[TIPC_NLA_LINK]) |
| 1961 | return -EINVAL; | 1962 | return -EINVAL; |
| 1962 | name = nla_data(info->attrs[TIPC_NLA_LINK_NAME]); | 1963 | |
| 1964 | err = nla_parse_nested(attrs, TIPC_NLA_LINK_MAX, | ||
| 1965 | info->attrs[TIPC_NLA_LINK], | ||
| 1966 | tipc_nl_link_policy, info->extack); | ||
| 1967 | if (err) | ||
| 1968 | return err; | ||
| 1969 | |||
| 1970 | if (!attrs[TIPC_NLA_LINK_NAME]) | ||
| 1971 | return -EINVAL; | ||
| 1972 | |||
| 1973 | name = nla_data(attrs[TIPC_NLA_LINK_NAME]); | ||
| 1963 | 1974 | ||
| 1964 | msg.skb = nlmsg_new(NLMSG_GOODSIZE, GFP_KERNEL); | 1975 | msg.skb = nlmsg_new(NLMSG_GOODSIZE, GFP_KERNEL); |
| 1965 | if (!msg.skb) | 1976 | if (!msg.skb) |
